9得票3回答
何时调用IEnumerable.GetEnumerator而不是IEnumerable<T>.GetEnumerator?

看一下这段代码: public class myWords : IEnumerable&lt;string&gt; { string[] f = "I love you".Split(new string[]{"lo"},StringSplitOptions.RemoveEmptyE...

9得票1回答
一个C#类中多个枚举器

我创建了一个包含间隔的数据结构。该数据结构应该自然地具有枚举器来枚举所有间隔,但我想公开两个不同的枚举器来按不同顺序枚举这些间隔。 其中一个枚举器以非常快的速度枚举间隔,但顺序有点随意。另一个枚举器以词典顺序枚举它们,但速度较慢(取决于间隔)。根据您想要实现的目标,可能更喜欢其中一个枚举器而...

8得票2回答
为什么我们需要两个接口来枚举集合?

我一直在尝试理解 IEnumerable 和 IEnumerator 的概念,但已经有一段时间了。我阅读了在网络上和特别是在 StackOverflow 上能找到的所有问题和答案,但我并不满意。我已经到了理解如何使用这些接口的程度,但不知道为什么要这样使用。 我认为我误解的本质在于我们需要两...

8得票2回答
Visual Studio如何在不进入其IEnumerator<T>的MoveNext中断的情况下评估IEnumerable?

假设您为下面的代码编写了自定义枚举器: public class School : IEnumerable&lt;Student&gt; 然后在客户端代码中,您这样做: static void Main(string[] args) { var school = CreateS...

8得票5回答
你如何称呼IEnumerable<Foo>?

有时候我在想,当提到一个 IEnumerable&lt;Foo&gt; 时应该用什么词。我认为在阅读代码时没有看到一致的命名方式。 IEnumerable&lt;Foo&gt;: 这是一种类型名称。在思考或使用句子时并不实用。 Collection: 它是有效的,但并不是到处都使用。虽然我...

8得票1回答
Linq:执行顺序链查询

我希望了解链式查询的处理方式。例如,我们考虑以下查询: var sumOfRoots = numbers //IEnum0 .Where(x =&gt; x &gt; 0) //IEnum1 .Select(x =&gt; Mat...

7得票1回答
C++/CLI IEnumerable和IEnumerator实现

有没有人有一个能够实现C++/CLI中IEnumerable和IEnumerator的工作步骤示例?或者,有人知道如何修复MS Connect中以下代码在Visual Studio 2005中无法编译的问题吗? http://connect.microsoft.com/VisualStudi...

7得票3回答
为什么在实现IEnumerator<T>接口的类中需要使用IEnumerator.Current?

我有一个实现了IEnumerator&lt;string&gt;的类。请看下面: public class MyClass : IEnumerator&lt;string&gt; { public bool MoveNext() { //.... } ...

7得票2回答
IEnumerable和IObservable在底层上有什么区别?

我很好奇 IEnumerable 和 IObservable 在内部有何不同。我知道它们分别采用拉和推模式,但是在内存等方面,C# 如何通知订阅者(对于 IObservable)应接收内存中要处理的下一组数据?观察到的实例如何知道自己的数据发生了变化,以将其推送给订阅者。 我的问题来自读取文...

7得票8回答
在foreach循环中手动递增枚举器。

我在一个foreach循环内有一个嵌套的while循环,我想在满足某个条件的情况下无限地推进枚举器。为了做到这一点,我尝试将枚举器强制转换为IEnumerator&lt;T&gt;(如果它在foreach循环中,则必须是这样),然后在转换后的对象上调用MoveNext(),但它给我一个错误,说...