问题标签 [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.

0 投票
2 回答
380 浏览

c# - C# 集合

0 投票
6 回答
399 浏览

c# - 聚合惰性列表的设计模式

我正在编写如下程序:

  • 在给定目录中查找所有具有正确扩展名的文件
  • Foreach,在这些文件中查找给定字符串的所有出现
  • 打印每一行

我想以一种功能性的方式编写它,作为一系列生成器函数(调用yield return并且一次只返回一个项目的东西延迟加载),所以我的代码将如下所示:

这一切都很好,但我还想做的是在最后打印一些统计数据。像这样的东西:

问题是,像上面那样以“纯功能”风格编写代码,每个项目都是延迟加载的。
在最终的 foreach 循环完成之前,您只知道总共有多少文件匹配,并且因为一次只yield编辑一个项目,所以代码没有任何地方可以跟踪它之前找到了多少东西。如果您调用 LINQ 的matchingLines.Count()方法,它将重新枚举集合!

我可以想出很多方法来解决这个问题,但它们似乎都有些难看。它让我印象深刻,因为人们以前一定会做过,而且我相信会有一个很好的设计模式来展示做这件事的最佳实践方式。

有任何想法吗?干杯

0 投票
5 回答
12226 浏览

c# - 返回 ICollection 的真正优势是什么而不是列表?

我读过几篇博文,提到对于公共 API,我们应该始终返回 ICollection(或 IEnumerable)而不是 List。返回 ICollection 而不是 List 的真正优势是什么?

谢谢!

重复:List (of T) 和 Collection(of T) 有什么区别?

0 投票
2 回答
2358 浏览

asp.net - 将 ASP.Net 菜单控件绑定到集合

我正在尝试使用此代码将我的 asp.net 菜单控件绑定到一个集合.. 但它给了我一个错误,我的集合现在是 IHierarchyEnumerable.. 我也明白为什么..

有没有解决的办法..

0 投票
3 回答
40161 浏览

c# - IEnumerable 上的 C# 不同使用自定义 IEqualityComparer

这就是我想要做的。我正在使用 LINQ to XML 查询一个 XML 文件,它为我提供了一个 IEnumerable <T> 对象,其中 T 是我的“村庄”类,其中填充了此查询的结果。有些结果是重复的,所以我想对 IEnumerable 对象执行 Distinct(),如下所示:

由于默认比较器不适用于 Village 对象,我实现了一个自定义比较器,如 AllianceComparer 类中所示:

Distinct() 方法不起作用,因为无论有没有它,我都有完全相同数量的结果。另一件事,我不知道这通常是否可行,但我无法进入 AllianceComparer.Equals() 看看可能是什么问题。
我在互联网上找到了这样的例子,但我似乎无法让我的实现工作。

希望这里的人可能会看到这里可能出了什么问题!提前致谢!

0 投票
3 回答
1398 浏览

c# - IEnumerable 接口

我不明白为什么IList实施IEnumerable考虑到IList实施ICollection也实施IEnumerable

0 投票
5 回答
7019 浏览

c# - 在 IEnumerable 上查找最后一个

我想调用FindLast一个实现的集合IEnumerable,但FindLast仅适用于List. 什么是最好的解决方案?

0 投票
4 回答
37122 浏览

c# - 什么时候应该使用 IEnumerator 在 c# 中循环?

我想知道是否有任何时候在 foreach 循环上使用 IEnumerator 来遍历集合是有利的?例如,是否有任何时候使用以下代码示例中的任何一个比另一个更好?

代替

0 投票
4 回答
27398 浏览

c# - Linq To Sql 从函数返回为 IQueryable

好的,我已经设法使以下工作

我继续创建了我自己的类(myObject),其中包含原语ticket_id、title、care_of_email 和filename。哪些是我在 linq 语句中返回的项目。

我将我的声明修改为

认为这会使泛型的类型安全,但我收到错误“无法将方法组'AsQueryable'转换为非委托类型'System.Linq.IQueryable'。你打算调用该方法吗?”

我想要做的甚至可能吗?

myObject 类是否需要实现 IEnumerable 或 IQueryable?

还是最好从 linq 结果集中构造对象 MyObject ,然后从函数中返回对象 MyObject

0 投票
6 回答
164111 浏览

c# - List 之间自由转换和 IEnumerable

如何将 a 转换List<MyObject>为 anIEnumerable<MyObject>然后再返回?

我想这样做是为了在列表上运行一系列 LINQ 语句,例如Sort()