问题标签 [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 投票
1 回答
196 浏览

c# - 我想用任意索引创建一个 IEnumerable 继承稀疏数组

我正在尝试创建:

  • 具有任意索引的稀疏数组和
  • 有稀疏数组继承 IEnumerable。

到目前为止,我有索引...... IEnumerable 部分我不知道该怎么做。

如何让稀疏数组对象在 foreach 循环中遍历其字典?

编辑更新

由于大家的意见,我对代码进行了轻微的修改:

0 投票
0 回答
368 浏览

c# - javascript数组枚举器

我正在考虑推出我自己的解决方案,看看我是否可以使用 moveNext、Reset、Current 以及您可以在 C# 中与 IEnumerator 一起使用的所有其他功能来扩展可观察数组。问题是我无法在 javascript 数组中获得对原语的引用。所以我不得不基于当前的索引。但是,我遇到了一个问题,如果数组被更改,那么我无法判断枚举器应该在数组的哪个元素上。

例如这里是一个数组

[1,3,3,3,3,5]

假设当前是 [2] 的索引

如果删除 [3] 或 [4] 的索引,则 current 将不受影响,但它也与删除 [1] 或 [2] 没有区别。因为我无法记录引用,所以我必须按索引进行,但如果数组中的元素数量发生变化,则枚举器无法判断删除是在当前之前还是之后。甚至在记录阵列的最后一个版本时也是如此。关于如何做到这一点的任何想法,以便电流可以保持准确?如果 current 恰好是被移除的元素,那么让 current 指向下一个元素?

0 投票
1 回答
892 浏览

c# - 尝试在 ConfigurationElementCollection 上使用 Parallel.ForEach。无法让它工作

我有一个自定义配置部分,其中包含我使用从这个问题中获得的以下代码创建的集合:

我使用以下属性实现了我的集合:

问题是,当我尝试使用 Parallel.ForEach 遍历集合时,如下所示

我收到以下错误:

最后一个让我难住了。无法从 IEnumerator 转换为 IEnumerable?

0 投票
3 回答
2278 浏览

c# - When does IEnumerable.GetEnumerator get called instead of IEnumerable.GetEnumerator?

Looking at this code :

#xA;

Running :

#xA;

Yields

#xA;

I understand that the non-generic IEnumerator version is for compatibility.

Question:

  1. In what scenario will the non-generic be invoked?
  2. How can I force my code to be run with the non-generic IEnumerator?
0 投票
1 回答
3905 浏览

c# - ForEach 循环不改变类的属性

我已经看到了一些关于此的问题,并进行了一些研究。

我的理解是,当您在 IEnumerable 上运行 foreach 时:如果 T 是引用类型(例如类),您应该能够从循环中修改对象的属性。如果 T 是值类型(例如 Struct),这将不起作用,因为迭代变量将是本地副本。

我正在使用以下代码开发 Windows Store 应用程序:

我的课:

编码:

显示结果后,“关键字”属性为“在此处设置关键字”。如果我在 foreach 循环中放置一个断点,我可以看到结果对象没有被修改......

关于发生了什么的任何想法?我只是错过了一些明显的东西吗?IEnumerable 在 .NET For Windows Store Apps 中的行为是否不同?

0 投票
3 回答
289 浏览

c# - 迭代和修改字典

我正在尝试为http://users.metropolia.fi/~dangm/blog/?p=67上解释的问题实施解决方案。我是 C# 语言的新手。我想使用枚举器和特定条件遍历字典。所以有两个变量 current 和 previous.current 指向字典的第一个元素。previous 指向字典中的前一个元素。而迭代我正在迭代的字典

问题是,当我们第一次遍历整个字典时,前一个点指向字典中的最后一个元素,当前点指向随机键值对 RawVariable(0,0)。但是现在,当我们第二次遍历字典时,我希望当前指向第一个元素在 dictionary.how 我如何使当前点指向具有特定键或值的某些元素

这是我的代码片段

0 投票
1 回答
769 浏览

c# - 在重构具有多个产量的 IEnumerator 方法时遇到问题

我的代码要点如下:


现在我想将上面的代码拆分成一个带有 2 个调用的 IEnumerator 方法。

这就是我想出的:

这样做的问题是,不是节拍以正确的间隔发声,而是两个节拍同时响起,因为我在无限循环中进行了这些调用,Unity 崩溃了,因为没有考虑间隔。

将上面的两个重复代码块提取到单个 IEnumerator 方法中的最佳方法是什么?

0 投票
2 回答
4310 浏览

c# - 覆盖 GetEnumerator 的默认行为

我有一个要求,我需要知道GetEnumerator().

我能想到的最好的方法可能是将默认行为覆盖到GetEnumerator我创建的行为上,GetEnumerator([CallerMemberName]string caller = null)但我似乎无法这样做,因为任何调用它的东西仍然会使用原始行为。

一些调用代码的示例可能是

目的是我想知道"button1_click"例如GetEnumerator()方法

0 投票
3 回答
3743 浏览

c# - Java 相当于 C# 中的 IEnumerator?

Java 库中是否有接口,它也列举了一些系列,但遵循与Iteratorand稍有不同的逻辑Enumeration?即他们应该返回booleanon next(),说明是否到达下一个元素,并且应该有getCurrent()返回当前元素的方法?

更新

Iterator.next()不等价,IEnumerator.Current因为前者会在每次调用时推进迭代器,而后者不会。

更新 2

我正在用自己的功能设计自己的课程。我的问题是为了找到一个“有能力”的类比。示例 fromC#只是一个示例,我没有将某些内容从C#to翻译Java

0 投票
2 回答
261 浏览

c# - 将一个空字符串添加到 HashTable.Add() 可能是“值不在预期范围内”的罪魁祸首?

我一生都无法弄清楚遗留代码为什么会这样做:

...当这似乎更明智时:

我只是耸耸肩,把它归结为这段代码的一般奇怪之处,但我在这段代码中得到“值不在预期范围内”,我想知道这是否可能是问题所在。在更完整的上下文中,代码是这样的:

...我将其更改为:

...但我仍然得到,“价值不在预期范围内”