why .ToList (). Distinct () gibt einen Fehler aus, aber nicht die .Distinct (). ToList () mit linq query

7

Ich bin nicht in der Lage, den Unterschied zwischen LinqQuery.ToList (). Distinct () und LinqQuery.Distinct (). ToList (); für mich beide zu kennen sieht gleich aus.

Betrachten Sie diesen Beispielcode :

%Vor%

str1 zeigt einen Fehler wie: "Der Typ 'System.Collections.Generic.IEnumerable' kann nicht implizit in 'System.Collections.Generic.List' konvertiert werden. Eine explizite Konvertierung existiert (fehlt Ihnen eine Umwandlung?)"

aber kein Fehler für str2.

Bitte helfen Sie mir, den Unterschied zwischen diesen beiden zu verstehen. Danke

    
Chandan Kumar 18.09.2012, 07:04
quelle

1 Antwort

18

.Distinct() ist eine Methode, die auf IEnumerable<T> angewendet wird, und gibt eine IEnumerable<T> zurück (träge ausgewertet). Ein IEnumerable<T> ist eine Sequenz: Es ist nicht a List<T> . Wenn Sie also mit einer Liste enden wollen, fügen Sie .ToList() am Ende ein.

%Vor%

Zur Veranschaulichung, warum dies so ist, betrachten Sie die folgende grobe Implementierung von Distinct() :

%Vor%     
Marc Gravell 18.09.2012, 07:06
quelle

Tags und Links