在你喜欢的 LINQ 结果上:
var result = from x in Items select x;
List<T> list = result.ToList<T>();
然而,ToList<T>
真的很慢,它是否使列表可变,因此转换很慢?
在大多数情况下,我可以管理我的 IEnumerable
或 Paralell.DistinctQuery
但现在我想将项目绑定(bind)到 DataGridView,因此我需要作为 IEnumerable
以外的东西,有关我将如何在 ToList 或任何替代品上获得性能的建议?
关于 IEnumerable
中的 1000 万条记录, .ToList<T>
大约需要 6 秒。
最佳答案
.ToList()
比什么慢?
比较的话
var result = from x in Items select x;
List<T> list = result.ToList<T>();
到
var result = from x in Items select x;
您应该注意到,由于查询是延迟计算的,因此第一行根本没有做太多事情。它不检索任何记录。 延迟执行使这种比较完全不公平。
关于c# - 在 LINQ 结果上将 IEnumerable<T> 转换为 List<T>,性能损失巨大,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2162442/