例如
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/)。您为该案例提供的代码将枚举一次。
