Skip to main content
 首页 » 编程设计

c#之System.Linq 中的 ForEach 和 WebGrease.Css.Extensions 中的 ForEach 有什么区别

2024年02月05日28落叶无声

例如

System.Linq

dogs.ToList().ForEach(dog => Console.WriteLine(dog.Name)); 

WebGrease.Css.Extensions

dogs.ForEach(dog => Console.WriteLine(dog.Name)); 

两者似乎都在做同样的事情,那么有什么区别呢?有任何性能差异吗?另外我认为 Linq 可能不允许像我上面提到的那样进行函数调用,但它确实可以编译。

请您参考如下方法:

ForEach是 System.List<T> 的成员,不是 Linq 的一部分。您提供的代码将枚举项目两次,一次用于 ToList调用一次ForEach .

WebGrease 是 IEnumerable<T> 的扩展(参见 https://searchcode.com/codesearch/view/27951506/)。您为该案例提供的代码将枚举一次。