问题 C#中“枚举器”的定义


枚举器在C#中的含义是什么?


7329
2017-08-05 13:29


起源



答案:


枚举器可帮助您枚举(迭代)项目集合。

你可以通过简单地看一下来推断出目的 IEnumerator接口的成员。更具体地说,枚举器确切地知道你在集合中的位置(当前项)和下一个项的位置(MoveNext方法)。

查看Iterator上的Wikipedia文章:

迭代器 - 维基百科


8
2017-08-05 13:31





“Enumerator”是.NET Framework的名称 迭代器。迭代器上的Wikipedia页面包含对该主题的精彩介绍:

有关.NET实现的特定信息,请参阅的MSDN页面 IEnumerator 界面包含更多细节:

通常,迭代器允许您遍历集合。在C#中,最常使用迭代器 含蓄 通过 foreach 声明

foreach (myType o in myCollection)
{
    // do something with o
}

这相当于迭代器的以下显式用法:

IEnumerator<myType> iter = myCollection.GetEnumerator();
while (iter.MoveNext())
{
    var o = iter.Current;
    // do something with o
}

4
2017-08-05 13:32





IEnumerable和IEnumarable有一个名为GetEnumerator()的方法,它返回一个Enumerator对象

枚举器公开GetNext()方法,这是非常自我解释的。

枚举器是启用foreach循环的原因


2
2017-08-05 13:34





您使用枚举器迭代项集合。

做这种事情的一个好方法是C#正在使用 foreach 循环。

例如:

IList<string> actors = new List<string>();
actors.Add("Chuck Norris");
actors.Add("Denzel Washington");
actors.Add("Sylvester Stallone");

// iterate over the list using foreach
foreach (string actor in actors)
{
    //...
}

1
2017-08-05 13:31