public bool MoveNext ()
{
if (version != list._version)
throw new InvalidOperationException("List has changed.");
if (++index < list.Count) {
currentElement = list [index];
return true;
} else {
currentElement = endFlag;
return false;
}
}