public LazyList(DataState ds, Func <T, bool> predicate) { dataState = ds; pre = predicate; State = LazyState.Initialised; }