C#中的GetEnumerator()
方法用于返回实现IEnumerable
接口的集合类中的迭代器(IEnumerator
)对象。该方法可以通过foreach
循环在集合中循环迭代项目。
以下是GetEnumerator()
方法的完整攻略:
语法
public virtual IEnumerator GetEnumerator();
返回值
一个实现IEnumerator
接口的对象,可以用来遍历集合。
示例
下面是两个示例,展示如何使用GetEnumerator()
方法:
- 遍历整型数组
int[] myArray = {1, 2, 3, 4, 5};
IEnumerator myEnumerator = myArray.GetEnumerator();
while (myEnumerator.MoveNext()) {
Console.WriteLine(myEnumerator.Current);
}
解释:在这个示例中,我们首先创建了一个整型数组。然后,我们调用了GetEnumerator()
方法来获取一个迭代器。接下来,我们使用while
循环遍历集合中的每个元素,并使用Current
属性来获取迭代器当前指向的元素。每次循环时,我们将元素打印到控制台上。
- 遍历自定义类的实例
public class Person {
public string Name { get; set; }
public int Age { get; set; }
public static IEnumerable GetPeople() {
yield return new Person { Name = "Alice", Age = 23 };
yield return new Person { Name = "Bob", Age = 31 };
yield return new Person { Name = "Charlie", Age = 42 };
}
}
foreach (Person p in Person.GetPeople()) {
Console.WriteLine("{0} ({1})", p.Name, p.Age);
}
解释:在这个示例中,我们定义了一个Person
类,该类包括Name
和Age
属性,并提供一个名为GetPeople
的静态方法,该方法返回一个实现IEnumerable
接口的匿名类型。在GetPeople
方法中,我们使用yield return
语句来按顺序返回三个Person
对象。最后,我们使用foreach
循环遍历每个Person
对象,并将其属性打印到控制台上。
这就是GetEnumerator()
方法的完整攻略。它非常有用,可以极大地方便循环遍历集合中的元素。