问题标签 [ienumerator]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
3 回答
502 浏览

linq - 如何获得下一个和上一个值?

我有这段代码可以使用 LINQ 命名空间获取下一个值。

但是现在,我还需要获取以前的值,但是我在这里我不知道该怎么办。

0 投票
2 回答
685 浏览

c# - 枚举器作为参数

好,我们从这个非常简单的按钮点击方法开始

这个方法什么都不做,因为每个断言都优雅地通过了。一切都很好,直到我相信我应该介绍一种消除冗余的方法

尽管如此,这种重构还是很简单的(至少对我而言)。它确实破坏了程序!在第二次调用 AssertNext 时,似乎枚举器已经重置到起点并导致断言失败。

我无法理解发生了什么。我真的觉得自己是这个谜题的初学者。

我在这里想念什么?

0 投票
3 回答
1079 浏览

c# - 声明一个同时支持 Void 和 IEnumerator 的函数

我想知道是否有一种方法可以声明一个支持使用 IEnumerator 和 Void 的方法(例如在接口中),而无需在子类中实现这两者?

这与我的另一个问题有关:协程完成时保持或等待

我注意到在 Unity 上下文中,默认Start()方法似乎允许两者。

0 投票
1 回答
73 浏览

.net - IEnumerable & IEnumerator 后缀

如果您有一个实现但未实现IEnumerable的类,或者您使用什么后缀?IEnumeratorICollectionIListISet

0 投票
2 回答
370 浏览

c# - IEnumerable 与 IObservable 的本质有何不同?

我很好奇与引擎盖下有什么IEnumerable不同。IObservable我分别了解拉取和推送模式,但是 C# 在内存等方面如何通知订阅者(对于 IObservable)它应该接收内存中的下一位数据以进行处理?观察到的实例如何知道要推送给订阅者的数据发生了变化。

我的问题来自我正在从文件中读取行的测试。该文件总共约6Mb。

标准耗时:4.7s,行数:36587

接收时间:0.68s,行数:36587

Rx 如何能够大规模改进文件中每一行的正常迭代?

0 投票
4 回答
3854 浏览

c# - IEnumerable C# 类操作方法

下面是我的课。我需要使其可枚举。我在网上查看过,虽然我找到了很多文档,但我仍然迷路了。我认为这绝对是我第一次要问这个问题,但是有人可以请让这个该死的东西为我枚举,我会从那里弄清楚。我正在使用 C# ASP.Net 4.0

0 投票
6 回答
4449 浏览

c# - C#:IEnumerable 的循环枚举

我当前的应用程序中有命令层次结构。

因此,有些命令是有状态的,有些则不是。

我需要在命令执行期间以循环方式枚举 IEnumerable 以实现某些命令。

Execute时不时调用,所以需要存储迭代状态。

如何实现该循环枚举?

我找到了两个解决方案:

  1. 使用IEnumerator<T>界面。看起来像:

  2. 使用循环IEnumerable<T>yield永远相同的序列):“实现循环迭代器”-HonestIllusion.Com

也许,有更多的方法来实现它。
你会推荐使用什么,为什么?

0 投票
1 回答
224 浏览

c# - 这是在滥用 IEnumerator 构造吗?

我有一个Sensor状态机,我已经为其编写了Cycle()方法:

执行:

我已经阅读了Eric Lippert对使用 IEnumerator作为StateMachine 进行查询的回答。我的实现是否滥用或利用了 IEnumerator?我将我的实现视为提供一系列状态自动化的一种方式。

0 投票
1 回答
51 浏览

c# - 为什么 RunThis() 什么都不做?

我正在 Unity3d 中开发一个项目,我正在编写一些代码,最初我将 IEnumerator 作为 Start 而不是 RunThis 并且代码运行良好,现在我将它移入一个新方法,它没有做任何事情。有人可以解释一下吗?

Ps 我预计至少有人会告诉我有关 unityanswers 的信息,是的,我知道它存在,但该网站的错误太多,我相信有人听到可以回答这个问题,谢谢。

0 投票
4 回答
1200 浏览

c# - 为什么 Iterator 定义 remove() 操作?

在 C# 中,IEnumerator接口定义了一种遍历集合并查看元素的方法。我认为这非常有用,因为如果您传递IEnumerable<T>给一个方法,它不会修改原始源代码。

但是,在 Java 中,Iterator删除操作定义为(可选!)允许删除元素。Iterable<T>传递给方法没有任何优势,因为该方法仍然可以修改原始集合。

remove可选性是拒绝遗赠气味的一个例子,但忽略这一点(已经在这里讨论过)我会对促使remove事件在接口上实现的设计决策感兴趣。

导致remove被添加到的设计决策是Iterator什么?

换句话说,明确没有remove定义的 C# 设计决策是IEnumerator什么?