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; } }