c# - 为什么这里不使用LINQ ToList?

标签 c# .net linq ienumerable enumeration

我看到以下代码:

using(var iterator = source.GetEnumerator()) {...}

哪里sourceIEnumerable<T> .

执行上述操作与转换相比有何优势 source进入List<T>然后迭代它?

最佳答案

将其转换为列表将迭代可枚举一次并将所有引用(甚至值类型的值)复制到新的 List<> 中。然后,您将迭代该列表。这意味着您将迭代两次。

使用IEnumerable<>作为枚举源仅迭代序列一次。

为什么有人决定使用枚举器手动进行迭代,而不是将详细信息留给 foreach从您发布的小范围来看还不清楚。

关于c# - 为什么这里不使用LINQ ToList?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36816109/

相关文章:

c# - 如何在 View 模型中存储 linq 查询结果

c# - 如何猜测 .NET 中没有 BOM 的文件的编码?

c# - 如何在不对列进行硬编码的情况下在 LINQ 中转换数据

c# - 表示百分比、概率或库存水平

c# - 适用于 Android Xamarin 的 Google 帐户登录集成

c# - Linq List<string> 并集

c# - jQuery easySlider 在使用 C# 的 ASP.NET 中不工作

c# - LINQ to Entities 从有序分组中查找最高记录

.net - 构建部署包时的 WebGrease 警告

c# - Find() 和 First() 抛出异常,如何返回 null?