The following example describes how to perform foreach statement implemented using while statement. First the IEnumerable collection is asked to create new enumerator instance (which implements IEnumerator). Then it calls IEnumerator.MoveNext() method until it returns false. For each iteration it obtains value from IEnumerator.Current property. Workout and see the result should be same as that of foreach statement.
var names = new List<string>() { "Car", "Bike", "Bus" };
foreach (string name in names)
{
Console.WriteLine(name);
}//foreach performed using whilestatement
var enumerator = names.GetEnumerator();
while (enumerator.MoveNext())
{
string name = (string)enumerator.Current;
Console.WriteLine(name);
}
Output:
Car
Bike
Bus