Performance IEnumerable<T>.ToList().ForEach() over loop
本问题已经有最佳答案,请猛点这里访问。
这两种说法有什么不同吗?
1 | IEnumerable<T>.ToList().ForEach(x => Console.WriteLine(x)); |
和
1 2 | foreach (var obj in IEnumerable<T>) Console.WriteLine(obj) |
在第一个示例中,您将
在第二个示例中,您将
对第一个和第二个的绩效惩罚有两种:
- 新
List 对象的创建 - 双重枚举:在原始源上,然后是列表