【发布时间】:2014-09-05 20:53:09
【问题描述】:
我试图了解 IEnumerable 接口的工作原理,但发现很难理解这个概念,因为一些示例使用 IEnumerator、GetEnumerator、Current、moveNext、Reset,而一些示例演示了 IEnumerable 与 IEnumerator 没有 Current、moveNext、Reset 与嵌套内部班级。
我需要一个简单的例子来理解这个概念,以及何时适合将 IEnumerator 与 Current、moveNext、Reset 一起使用,何时不适合。
【问题讨论】:
-
消费?还是实施?
-
@MarcGravell。如果您能从这两个角度提供解释,我将不胜感激。谢谢
-
@MarcGravell。使用 .NET 4.5 我通常不需要实现 IEnumerator 对吗?
-
它实际上不是 .NET 运行时功能;它是一个编译器特性; IIRC,迭代器块自 C# 2.0 以来一直存在,而 .NET 4.5 附带的编译器版本比这要高得多,所以:是的
-
@MarcGravell。我们什么时候真的需要使用 IEnumerable?
标签: c# .net collections ienumerable ienumerator