2016-05-06 68 views
0

例如System.Linq中的ForEach和WebGrease.Css.Extensions中的ForEach有什麼區別?

System.Linq的

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

WebGrease.Css.Extensions

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

似乎都做同樣的事情,所以有什麼區別?是否有任何性能差異?此外,我認爲Linq可能不允許像我上面提到的函數調用,但它編譯。

+1

您可以查看此主題:http://www.codeproject.com/Articles/1064219/A-behavioural-difference-between-IEnumerable-ForEa –

回答

2

ForEach是​​的成員,不是Linq的一部分。您提供的代碼將枚舉兩次,一次爲ToList,一次爲ForEach

WebGrease是IEnumerable<T>的擴展(請參閱https://searchcode.com/codesearch/view/27951506/)。您爲這種情況提供的代碼將枚舉一次。

相關問題