Skip to content

C# IEnumerable

Every object that implements IEnumberable can be used with the foreach statement.

var numbers = new List<int> = { 1, 3, 5, 7, 11};

Assert.IsTrue(numbers is IEnumerable<int>);

var e = numbers.GetEnumerator();

bool hasData = e.MoveNext();
Assert.IsTrue(hasData);

int i = e.Current;
Assert.IsTrue(i == 1);

the following is a demonstration of how foreach() works under the bonnet..

numbers.Reset();
while(numbers.MoveNext()) {
    //do something with e.Current;
}