首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >IEnumerator用途

IEnumerator用途
EN

Stack Overflow用户
提问于 2010-10-29 03:12:12
回答 3查看 1.3K关注 0票数 5

我不太理解C#集合中的IEnumerator的用法。它是用来做什么的,为什么要用它?

我试着在http://msdn.microsoft.com/en-us/library/system.collections.ienumerator.aspx上在线查看,但那篇文章没有太多意义。我问这个问题的原因是在Unity3d游戏引擎中,它和yield函数一起使用。我正在尝试理解使用IEnumerator的原因。

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2010-10-29 03:13:56

当IEnumerator接口由类实现时,它允许使用内置的foreach语法进行迭代。

在需要为IEnumerator接口迭代的类中,为控制遍历对象的GetEnumerator函数定义一个方法签名。

代码语言:javascript
复制
public IEnumerator<OrderLine> GetEnumerator()
    {
        for (int i=0;i<maxItems;i++) 
        {
            yield return item[i];
        }
    }

正如您在此示例中所看到的, lets 语句允许您将控制权返回给调用方,而不会丢失其在枚举中的位置。当调用方遇到foreach循环的下一个增量时,控制权将传递回yield语句之后的行。

票数 10
EN

Stack Overflow用户

发布于 2010-10-29 03:16:27

您很少显式地使用IEnumerator,但是有很多扩展方法可以使用它,还有foreach。所有的集合都实现了它,它是迭代器模式的一个例子。

票数 1
EN

Stack Overflow用户

发布于 2010-10-29 03:16:51

它只是一个简单的接口,允许对象执行操作,从而轻松地迭代集合。您可以使用它来创建对象,这些对象使用foreach结构或类似的语法在自定义集合上迭代。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/4046379

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档