C# langauge: Enumerators and iterators