ienumerable相关内容

IEnumerable在数组和列表上的性能不同

这个问题更像是一个“我的理解是否准确”的问题,如果不是,请帮我理清思路。我有一小段代码来解释我的问题: class Example { public string MyString { get; set; } } var wtf = new[] { "string1", "string2"}; IEnumerable transformed = wtf.Selec ..
发布时间:2022-04-19 11:55:29 C#/.NET

IEumable IndexOutOfRangeException异常

我不知道为什么使用此代码会得到System.IndexOutOfRangeException: 'Index was outside the bounds of the array.' IEnumerable query = "Text result"; string illegals = "abcet"; for (int i = 0; i ..
发布时间:2022-04-19 11:52:45 C#/.NET

添加LINQ的LongCount扩展方法有什么实际原因吗?

LINQ有两种计算可枚举数的方法:Count和LongCount。实际上,这两者之间唯一的区别是,第一个返回int,而第二个返回long。 我不清楚为什么添加了第二种方法。它唯一的用例似乎是处理超过2B个元素的可枚举项。在我看来,这是一个糟糕的决定,原因有几个: 大多数BCL集合都由一维数组支持,这些数组的长度保证适合int。尝试越过它将引发OverflowException/OutO ..
发布时间:2022-04-19 11:43:03 C#/.NET

检查PowerShell中的IEnumerable是否为空

如果IEnumerable为空,是否有本机PowerShell测试方法? 我知道我可以这样调用Linq.Enumerable.Any: [Linq.Enumerable]::Any($enumeration) 但我希望有一种更自然的方式。 推荐答案 遗憾的是,Windows PowerShell/AS在PowerShell(Core)v7.2中没有原生方式,虽然[Lin ..
发布时间:2022-04-19 11:39:36 C#/.NET

多次读取IEumable

假设我有一些代码: var items = ItemsGetter.GetAllItems().Where(x => x.SomeProperty > 20); int sum1 = items.Sum(x => x.SomeFlag == true); 例如,我需要代码后面部分Items集合中的一些其他金额。 int sum2 = items.Sum(x => x.OtherFl ..
发布时间:2022-04-19 11:38:11 C#/.NET

有没有一个IEumable实现只迭代一次它的源代码(例如LINQ)?

提供的items是LINQ表达式的结果: var items = from item in ItemsSource.RetrieveItems() where ... 假设生成每一项都需要一些不可忽视的时间。 可以使用两种操作模式: 使用foreach将允许开始处理集合开头的项,而不是最终可用的项。但是,如果我们希望以后再次处理相同的集合,则必须复制并 ..
发布时间:2022-04-19 11:36:22 C#/.NET

IEnumerable vs List - 使用什么?它们是如何工作的?

我对枚举器的工作方式和 LINQ 有一些疑问.考虑这两个简单的选择: 列表sel =(来自动物中的动物参加物种竞赛在animal.SpeciesKey 上等于race.SpeciesKey选择动物).Distinct().ToList(); 或 IEnumerablesel =(来自动物中的动物参加物种竞赛在animal.SpeciesKey 上等于race.SpeciesKey选择 ..
发布时间:2022-01-30 10:32:25 C#/.NET

IEnumerable<T> 上的动态 LINQ OrderBy/IQueryable<T>

我在 VS2008 示例 中找到了一个动态 LINQ 示例,它允许您使用类似 SQL 的字符串(例如 OrderBy("Name, Age DESC")) 进行排序.不幸的是,包含的方法仅适用于 IQueryable.有没有办法在 IEnumerable 上获得此功能? 解决方案 刚刚偶然发现这个老歌...... 要在没有动态 LINQ 库的情况下执行此操作,您只需要如下 ..
发布时间:2022-01-30 09:47:22 C#/.NET

如何同时遍历两个 IEnumerables?

我有两个枚举:IEnumerablelist1 和 IEnumerable列表2.我想同时遍历它们,例如: foreach((a, b) in (list1, list2)){//使用 a 和 b} 如果它们不包含相同数量的元素,则应抛出异常. 最好的方法是什么? 解决方案 这是这个操作的一个实现,通常称为 Zip: 使用系统;使用 System.Collectio ..
发布时间:2022-01-24 11:34:55 C#/.NET

缓存 IEnumerable

public IEnumerable列表模块(){foreach (XElement m in Source.Descendants("Module")){yield return new ModuleData(m.Element("ModuleID").Value);}} 最初,上面的代码很棒,因为如果不需要,就不需要评估整个集合. 然而,一旦所有模块都被枚举一次,在没有变化的情况下重复 ..
发布时间:2022-01-19 15:07:27 C#/.NET