341得票16回答
有人能为我解释一下IEnumerable和IEnumerator吗?

有人能向我解释一下 IEnumerable 和 IEnumerator 吗? 例如,什么时候应该使用它而不是 foreach?IEnumerable 和 IEnumerator 之间的区别是什么?为什么我们需要使用它?

127得票4回答
IEnumerator和IEnumerable有什么区别?

可能重复: 有人能向我解释一下IEnumerable和IEnumerator吗? IEnumerator和IEnumerable有什么区别?

111得票8回答
从数组中获取通用枚举器

在C#中,如何从给定的数组获取通用枚举器? 在下面的代码中,MyArray是一个由MyType对象组成的数组。我想以所示的方式获取MyIEnumerator,但似乎我获取到了一个空的枚举器(尽管我已确认MyArray.Length > 0)。MyType[] MyArray = ... ; ...

89得票5回答
简单的IEnumerator使用(附示例)

我有些困难记住在C#中如何(而不是为什么)使用IEnumerator。我习惯于Java,它有很好的文档,对初学者解释得非常清楚。所以,请耐心等待。 我尝试从其他答案中学习,但没有成功。与其问一个已经被问过的通用问题,我有一个具体的例子,可以帮助我澄清问题。 假设我有一个方法,需要传递一个I...

86得票6回答
为什么 IEnumerator<T> 继承自 IDisposable,而非泛型之外的 IEnumerator 不继承?

我注意到通用的IEnumerator&lt;T&gt;继承自IDisposable,但非通用接口IEnumerator没有。为什么会这样设计呢? 通常,我们使用foreach语句遍历IEnumerator&lt;T&gt;实例。foreach生成的代码实际上有try-finally块,在fi...

71得票9回答
返回一个空的IEnumerator。

我有一个接口,其中实现了“public IEnumerator GetEnumerator()”方法,以便我可以在foreach语句中使用该接口。 我在几个类中实现了这个接口,并且在其中一个类中,我想返回一个空的IEnumerator。目前我是这样做的:public IEnumerator ...

63得票2回答
为什么BCL集合使用结构枚举器而不是类?

我们都知道可变结构体通常是有害的。我也很确定因为 IEnumerable&lt;T&gt;.GetEnumerator() 返回类型 IEnumerator&lt;T&gt;,这些结构体会立即装箱成引用类型,导致花费比起一开始就是引用类型更高。 那么为什么在BCL泛型集合中,所有枚举器都是可...

51得票2回答
为什么在.NET中,数组只实现IEnumerable而不是IEnumerable<T>?

我正在实现自己的ArrayList类,当我意识到...public System.Collections.Generic.IEnumerator&lt;T&gt; GetEnumerator() { return _array.GetEnumerator(); } 为什么在.NET中数...

36得票3回答
如何使用IEnumerator.Reset()?

如何正确调用IEnumerator.Reset方法? 文档中说明: Reset方法是为COM互操作性提供的。它不一定需要被实现; 相反,实现者可以简单地抛出一个NotSupportedException。 好了,那么这是否意味着我不应该调用它? 使用异常来控制流程是如此诱人:u...

33得票3回答