C# GetEnumerator():返回集合的枚举器,用于遍历集合中的元素

  • Post category:C#

C#中的GetEnumerator()方法用于返回实现IEnumerable接口的集合类中的迭代器(IEnumerator)对象。该方法可以通过foreach循环在集合中循环迭代项目。

以下是GetEnumerator()方法的完整攻略:

语法

public virtual IEnumerator GetEnumerator();

返回值

一个实现IEnumerator接口的对象,可以用来遍历集合。

示例

下面是两个示例,展示如何使用GetEnumerator()方法:

  1. 遍历整型数组
int[] myArray = {1, 2, 3, 4, 5};
IEnumerator myEnumerator = myArray.GetEnumerator();

while (myEnumerator.MoveNext()) {
    Console.WriteLine(myEnumerator.Current);
}

解释:在这个示例中,我们首先创建了一个整型数组。然后,我们调用了GetEnumerator()方法来获取一个迭代器。接下来,我们使用while循环遍历集合中的每个元素,并使用Current属性来获取迭代器当前指向的元素。每次循环时,我们将元素打印到控制台上。

  1. 遍历自定义类的实例
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类,该类包括NameAge属性,并提供一个名为GetPeople的静态方法,该方法返回一个实现IEnumerable接口的匿名类型。在GetPeople方法中,我们使用yield return语句来按顺序返回三个Person对象。最后,我们使用foreach循环遍历每个Person对象,并将其属性打印到控制台上。

这就是GetEnumerator()方法的完整攻略。它非常有用,可以极大地方便循环遍历集合中的元素。