性能IEnumerable. tolist (). foreach () over循环

本文关键字:foreach over 循环 tolist IEnumerable 性能 | 更新日期: 2023-09-27 18:08:43

这两个语句在性能上有什么区别吗?

IEnumerable<T>.ToList().ForEach(x => Console.WriteLine(x));

foreach (var obj in IEnumerable<T>)
   Console.WriteLine(obj)

性能IEnumerable<T>. tolist (). foreach () over循环

在第一个示例中,您将

  1. 通过枚举源
  2. 创建列表
  3. 通过新列表枚举,并对每个元素调用Console.WriteLine
在第二个示例中,您将
  1. 枚举源,对每个元素调用Console.WriteLine

第一个比第二个有两个性能损失:

    创建新的List对象
  • 双枚举:遍历原始源,然后列表