public bool MoveNext() { if (_innerEnumerator == null) { if (!_prevEnumerator.MoveNext()) { return(false); } _innerEnumerator = _projector(_prevEnumerator.Current).GetEnumerator(); return(MoveNext()); } if (_innerEnumerator.MoveNext()) { _current = _innerEnumerator.Current; return(true); } _innerEnumerator = null; return(MoveNext()); }
public TakeEnumerator(ILazyEnumerator <T> prevEnumerator, int limit) { _prevEnumerator = prevEnumerator; _limit = limit; _counter = 0; }
public WhereEnumerator(ILazyEnumerator <T> prevEnumerator, Func <T, bool> predicate) { _prevEnumerator = prevEnumerator; _predicate = predicate; }
public SelectEnumerator(ILazyEnumerator <T> prevEnumerator, Func <T, K> projector) { _projector = projector; _prevEnumerator = prevEnumerator; }
public LazyEnumerable(ILazyEnumerator <T> enumerator) { _enumerator = enumerator; }
public SelectManyEnumerator(ILazyEnumerator <T> prevEnumerator, Func <T, ILazyEnumerable <K> > projector) { _prevEnumerator = prevEnumerator; _projector = projector; }