2016-05-06 10 views
0

Zum BeispielWas ist der Unterschied zwischen ForEach in System.Linq und ForEach in WebGrease.Css.Extensions?

System.Linq

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

WebGrease.Css.Extensions

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

beide die gleiche Sache zu tun scheinen, so was ist der Unterschied? Gibt es Leistungsunterschiede? Ich denke auch, dass Linq einen Funktionsaufruf wie oben erwähnt nicht erlaubt, aber kompiliert.

+1

Sie können dieses Thema anzeigen: http://www.codeproject.com/Articles/1064219/A-behavioural-difference-between-IEnumerable-ForEa –

Antwort

2

ForEach ist ein Mitglied von System.List<T>, nicht Teil von Linq. Der von Ihnen bereitgestellte Code zählt die Elemente zweimal auf, einmal für den ToList Aufruf und einmal für den ForEach.

Das WebGrease ist eine Erweiterung von IEnumerable<T> (siehe https://searchcode.com/codesearch/view/27951506/). Der Code, den Sie für diesen Fall bereitgestellt haben, zählt sie einmal auf.

Verwandte Themen