我看到以下代码:
using(var iterator = source.GetEnumerator()) {...}
哪里source
是 IEnumerable<T>
.
执行上述操作与转换相比有何优势 source
进入List<T>
然后迭代它?
最佳答案
将其转换为列表将迭代可枚举一次并将所有引用(甚至值类型的值)复制到新的 List<>
中。然后,您将迭代该列表。这意味着您将迭代两次。
使用IEnumerable<>
作为枚举源仅迭代序列一次。
为什么有人决定使用枚举器手动进行迭代,而不是将详细信息留给 foreach
从您发布的小范围来看还不清楚。
关于c# - 为什么这里不使用LINQ ToList?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36816109/