我有时会在第一次迭代做一些与其他人不同的事情时使用它。
例如,如果要将成员打印到控制台并按行分隔结果,则可以编写。
using (IEnumerator<MyClass> classesEnum = myClasses.GetEnumerator()) {
if (classEnum.MoveNext())
Console.WriteLine(classesEnum.Current);
while (classesEnum.MoveNext()) {
Console.WriteLine("-----------------");
Console.WriteLine(classesEnum.Current);
}
}
然后结果是
myClass 1
-----------------
myClass 2
-----------------
myClass 3
另一种情况是当我一起迭代 2 个枚举器时。
using (IEnumerator<MyClass> classesEnum = myClasses.GetEnumerator()) {
using (IEnumerator<MyClass> classesEnum2 = myClasses2.GetEnumerator()) {
while (classesEnum.MoveNext() && classEnum2.MoveNext())
Console.WriteLine("{0}, {1}", classesEnum.Current, classesEnum2.Current);
}
}
结果
myClass 1, myClass A
myClass 2, myClass B
myClass 3, myClass C
使用枚举器可以让您在迭代中更加灵活。但在大多数情况下,您可以使用 foreach