问题标签 [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.
c# - 我想用任意索引创建一个 IEnumerable 继承稀疏数组
我正在尝试创建:
- 具有任意索引的稀疏数组和
- 有稀疏数组继承 IEnumerable。
到目前为止,我有索引...... IEnumerable 部分我不知道该怎么做。
如何让稀疏数组对象在 foreach 循环中遍历其字典?
编辑更新
由于大家的意见,我对代码进行了轻微的修改:
c# - javascript数组枚举器
我正在考虑推出我自己的解决方案,看看我是否可以使用 moveNext、Reset、Current 以及您可以在 C# 中与 IEnumerator 一起使用的所有其他功能来扩展可观察数组。问题是我无法在 javascript 数组中获得对原语的引用。所以我不得不基于当前的索引。但是,我遇到了一个问题,如果数组被更改,那么我无法判断枚举器应该在数组的哪个元素上。
例如这里是一个数组
[1,3,3,3,3,5]
假设当前是 [2] 的索引
如果删除 [3] 或 [4] 的索引,则 current 将不受影响,但它也与删除 [1] 或 [2] 没有区别。因为我无法记录引用,所以我必须按索引进行,但如果数组中的元素数量发生变化,则枚举器无法判断删除是在当前之前还是之后。甚至在记录阵列的最后一个版本时也是如此。关于如何做到这一点的任何想法,以便电流可以保持准确?如果 current 恰好是被移除的元素,那么让 current 指向下一个元素?
c# - 尝试在 ConfigurationElementCollection 上使用 Parallel.ForEach。无法让它工作
我有一个自定义配置部分,其中包含我使用从这个问题中获得的以下代码创建的集合:
我使用以下属性实现了我的集合:
问题是,当我尝试使用 Parallel.ForEach 遍历集合时,如下所示
我收到以下错误:
最后一个让我难住了。无法从 IEnumerator 转换为 IEnumerable?
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:
- In what scenario will the non-generic be invoked?
- How can I force my code to be run with the non-generic
IEnumerator
?
c# - ForEach 循环不改变类的属性
我已经看到了一些关于此的问题,并进行了一些研究。
我的理解是,当您在 IEnumerable 上运行 foreach 时:如果 T 是引用类型(例如类),您应该能够从循环中修改对象的属性。如果 T 是值类型(例如 Struct),这将不起作用,因为迭代变量将是本地副本。
我正在使用以下代码开发 Windows Store 应用程序:
我的课:
编码:
显示结果后,“关键字”属性为“在此处设置关键字”。如果我在 foreach 循环中放置一个断点,我可以看到结果对象没有被修改......
关于发生了什么的任何想法?我只是错过了一些明显的东西吗?IEnumerable 在 .NET For Windows Store Apps 中的行为是否不同?
c# - 迭代和修改字典
我正在尝试为http://users.metropolia.fi/~dangm/blog/?p=67上解释的问题实施解决方案。我是 C# 语言的新手。我想使用枚举器和特定条件遍历字典。所以有两个变量 current 和 previous.current 指向字典的第一个元素。previous 指向字典中的前一个元素。而迭代我正在迭代的字典
问题是,当我们第一次遍历整个字典时,前一个点指向字典中的最后一个元素,当前点指向随机键值对 RawVariable(0,0)。但是现在,当我们第二次遍历字典时,我希望当前指向第一个元素在 dictionary.how 我如何使当前点指向具有特定键或值的某些元素
这是我的代码片段
c# - 在重构具有多个产量的 IEnumerator 方法时遇到问题
我的代码要点如下:
现在我想将上面的代码拆分成一个带有 2 个调用的 IEnumerator 方法。
这就是我想出的:
这样做的问题是,不是节拍以正确的间隔发声,而是两个节拍同时响起,因为我在无限循环中进行了这些调用,Unity 崩溃了,因为没有考虑间隔。
将上面的两个重复代码块提取到单个 IEnumerator 方法中的最佳方法是什么?
c# - 覆盖 GetEnumerator 的默认行为
我有一个要求,我需要知道GetEnumerator()
.
我能想到的最好的方法可能是将默认行为覆盖到GetEnumerator
我创建的行为上,GetEnumerator([CallerMemberName]string caller = null)
但我似乎无法这样做,因为任何调用它的东西仍然会使用原始行为。
一些调用代码的示例可能是
目的是我想知道"button1_click"
例如GetEnumerator()
方法
c# - Java 相当于 C# 中的 IEnumerator?
Java 库中是否有接口,它也列举了一些系列,但遵循与Iterator
and稍有不同的逻辑Enumeration
?即他们应该返回boolean
on next()
,说明是否到达下一个元素,并且应该有getCurrent()
返回当前元素的方法?
更新
Iterator.next()
不等价,IEnumerator.Current
因为前者会在每次调用时推进迭代器,而后者不会。
更新 2
我正在用自己的功能设计自己的课程。我的问题是为了找到一个“有能力”的类比。示例 fromC#
只是一个示例,我没有将某些内容从C#
to翻译Java
。
c# - 将一个空字符串添加到 HashTable.Add() 可能是“值不在预期范围内”的罪魁祸首?
我一生都无法弄清楚遗留代码为什么会这样做:
...当这似乎更明智时:
我只是耸耸肩,把它归结为这段代码的一般奇怪之处,但我在这段代码中得到“值不在预期范围内”,我想知道这是否可能是问题所在。在更完整的上下文中,代码是这样的:
...我将其更改为:
...但我仍然得到,“价值不在预期范围内”