Anforderungen: Lesen Sie die technischen Blogs anderer, finden Sie, dass einige Sammlungen die ToLookup-Methode nennen, diese Methode wurde nicht angefasst, und suchen Sie dann die relevanten Materialien ab, um die Nutzung dieser Erweiterungsmethode zu lernen. Die ToLookup-Methode liefert einen Wert von ToLookup<TSource, TKey> einem Eins-zu-Viele-Wörterbuch zur Abbildung von Schlüsseln auf eine Sammlung von Werten.
GroupBy vs. ToLookup
GroupBy und ToLookup sind beide LINQ-Erweiterungsmethoden zur Gruppierung von Sammlungen, und der Hauptunterschied zwischen den beiden liegt im Rückgabetyp und der Verwendung.
Die GroupBy-Methode gibt ein IEnumerable<IGrouping<TKey, TElement>> Objekt zurück, wobei TKey der Typ ist, der den Gruppierungsschlüssel repräsentiert, und TElement der Typ, der den Elementtyp repräsentiert. Diese Methode gruppiert die Sammlung gemäß dem angegebenen Schlüsselselektor und liefert das Gruppierungsergebnis als Sequenz von IGrouping<TKey, TElement> Objekten. IGrouping<TKey, TElement> Objekte stellen eine Sammlung von Elementen mit demselben Schlüssel dar. Du kannst foreach-Schleifen oder LINQ-Abfragen verwenden, um über gruppierte Ergebnisse zu iterieren. Die GroupBy-Methode ist eine verzögerte Ausführungsoperation, die die eigentliche Gruppierungsoperation nur ausführt, wenn Sie mit Iteration der Ergebnisse beginnen.
Die ToLookup-Methode liefert ein ILookup<TKey, TElement> Objekt, wobei TKey der Typ ist, der den Gruppierungsschlüssel repräsentiert, und TElement der Typ, der den Elementtyp repräsentiert. Die Methode gruppiert die Sammlung gemäß dem angegebenen Schlüsselselektor und liefert das Gruppierungsergebnis als ILookup<TKey, TElement> Objekt. ILookup<TKey, TElement> Objekte repräsentieren eine Sammlung von Elementen mit demselben Schlüssel. Du kannst einen Indexer oder eine Foreach-Schleife verwenden, um auf die gruppierten Ergebnisse zuzugreifen. Im Gegensatz zu GroupBy ist ToLookup eine sofortige Aktion, die die Gruppierungsaktion sofort ausführt und beim Aufruf das Ergebnis zurückgibt.
Beispiel: Ein Schüler ist in einer Klasse, und eine Klasse entspricht mehreren Schülern. Die Schülersammlung enthält Klasseninformationen, und die Schüler jeder Klasse (oder einer bestimmten Klasse) werden entsprechend Klassengruppen ausgegeben.
Der Code lautet wie folgt:
Wie unten gezeigt:
Referenz:Der Hyperlink-Login ist sichtbar.
|