public static IEnumerable <T> EnumerateRange <T>( this ISequenceView <T> sequenceView, int startIndex, int rangeCount) { if (sequenceView == null) { throw new ArgumentNullException(nameof(sequenceView)); } using (IEnumerator <T> enumerator = sequenceView.GetEnumerator(startIndex, rangeCount)) { while (enumerator.MoveNext()) { yield return(enumerator.Current); } } }
public IEnumerator <T> GetEnumerator() => thisStartIndex < 0 ? collection.GetEnumerator() : collection.GetEnumerator(thisStartIndex, thisRangeCount);