IEnumerable<T> representing the "rest" of an IEnumerable<T> sequence
Posted
by Henry Jackson
on Stack Overflow
See other posts from Stack Overflow
or by Henry Jackson
Published on 2010-05-13T20:11:16Z
Indexed on
2010/05/13
20:14 UTC
Read the original article
Hit count: 269
If I am walking through an IEnumerable<T>
, is there any way to get a new IEnumerable<T>
representing the remaining items after the current one.
For example, I would like to write an extension method IEnumerator<T>.Remaining()
:
IEnumerable<int> sequence = ...
IEnumerator<int> enumerator = sequence.GetEnumerator();
if (enumerator.MoveNext() && enumerator.MoveNext()) {
IEnumerable<int> rest = enumerator.Remaining();
// 'rest' would contain elements in 'sequence' start at the 3rd element
}
I'm thinking of the collection of a sort of singly-linked list, so there should be a way to represent any remaining elements, right? I don't see any way to do this exposed on either IEnumerable<T>
or IEnumerator<T>
, so maybe it's incompatible with the notion of a potentially unbounded, nondeterministic sequence of elements.
© Stack Overflow or respective owner