问题标签 [ienumerable]
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只读?
为什么列表list1Instance
和下面代码p
的Main
方法指向同一个集合?
我们可以在不改变返回类型的情况下改变这种行为List1.Get()
吗?
谢谢
c# - C# List<> GroupBy 2 个值
我在 Framework 3.5 上使用 C#。我希望通过两个属性快速分组一个通用列表<>。为了这个例子,假设我有一个带有 CustomerId、ProductId 和 ProductCount 属性的 Order 类型的列表。如何使用 lambda 表达式获得按 CustomerId 和 ProductId 分组的 ProductCounts 的总和?
c# - 如何使用 IEnumerable 接口,同时让 XMLSerializer 不使用 GetEnumerator()?
我有一个类可以解析非常大的文件(无法放入内存),我目前正在使用 IEnumerable 接口来使用 foreach,因此我可以轻松地逐行获取文件的解析内容。目前,我正在尝试使用 XMLSerializer 将其写入文件。它坚持枚举类,在我的例子中,这意味着将大的、已解析的文件内容转储到 XML。无论如何(hackish 或优雅)使用这个接口并且仍然从 XMLSerializer 中获得“预期”的功能?
(我只称其为“预期的”,因为如果我实现一些集合接口而不是 IEnumerable,这似乎是预期的结果。也许我的 IEnumerable 和集合的概念完全不合时宜。:()
collections - 实体集合的 IList 与 IEnumerable
当我的域中有包含事物列表的实体时,它们应该公开为 ILists 还是 IEnumerables?例如 Order 有一堆 OrderLines。
c# - IEnumerable作为返回类型
IEnumerable<T>
用作返回类型有问题吗?FxCop 抱怨返回List<T>
(它建议返回Collection<T>
)。
好吧,我一直遵循“接受最少,但返回最多”的规则。
从这个角度来看,返回IEnumerable<T>
是一件坏事,但是当我想使用“懒惰检索”时应该怎么做呢?此外,yield
关键字是如此的好。
c# - 产生关键字附加值?
仍然试图找到在实际情况下我会在哪里使用“yield”关键字。
我看到这个主题的主题
但在接受的答案中,他们以此为例,有人在 Integers() 周围进行迭代
但为什么不直接使用
而是在这里。似乎更直接..
c# - 为什么我的 IEnumerable使用 yield return 较慢地迭代然后 List
我一直在yield return
用我写的一些代码来测试这个语句。我有两种方法:
和
然后我foreach
在每个集合上使用一个循环:
有趣的是,出于某种原因,我似乎能够比MyListCollection
MyYieldCollection 更快地循环并打印出完整的内容。
结果:
- MyYieldCollection -> 2062
- 我的列表集合-> 1847
我真的看不出这是什么原因,是我遗漏了什么还是这正常?
.net - 如何在循环中从 Enumerable 集合中删除对象
复制
有没有人有一个很好的模式可以让我在循环遍历可枚举集合(例如,字典中的 IList 或 KeyValuePairs)时解决无法删除对象的问题
例如,以下失败,因为它修改了在 foreach 期间枚举的列表
过去我使用了两种方法。
我已将 foreach 替换为反向 for 循环(以免在删除对象时更改我正在循环的任何索引)。
我还尝试存储一个新的对象集合以在循环中删除,然后遍历该集合并从原始集合中删除对象。
这些工作正常,但都感觉不好,我想知道是否有人想出了一个更优雅的解决方案
c# - 为什么 Enumerable.Range 比直接 yield 循环快?
下面的代码正在检查执行相同解决方案的三种不同方法的性能。
结果是:
“for 循环”比其他两个解决方案更快并不奇怪,因为 Enumerable.Aggregate 需要更多的方法调用。然而,让我感到惊讶的是,“Enumerable.Range”比“自制的 IEnumerable”要快。我认为 Enumerable.Range 会比简单的 GetIntRange 方法有更多的开销。
可能的原因是什么?