C#中'enumerator'的定义

时间:2010-08-05 13:29:05

标签: c#

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

4 个答案:

答案 0 :(得分:8)

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

您只需查看members of the IEnumerator Interface即可推断出目的。更具体地说,枚举器确切地知道你在集合中的位置(当前项)以及下一个项目的位置(MoveNext方法)。

查看Iterator上的维基百科文章:

Iterator - Wikipedia

答案 1 :(得分:4)

“Enumerator”是.NET Framework的 iterators 的名称。迭代器上的Wikipedia页面包含对该主题的一个很好的介绍:

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

通常,迭代器允许您遍历集合。在C#中,迭代器最常用于 implicity foreach statement

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
}

答案 2 :(得分:2)

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

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

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

答案 3 :(得分:1)

使用枚举器迭代一组项目。

做这种事情的一个好方法是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)
{
    //...
}