Cerințe: Citește blogurile tehnice ale altora, constată că unele colecții numesc metoda ToLookup, această metodă nu a fost modificată, apoi interogă materialele relevante pentru a învăța utilizarea acestei metode de extensie. Metoda ToLookup returnează o valoare ToLookup<TSource, TKey> un dicționar unu-la-multe pentru maparea cheilor la o colecție de valori.
GroupBy vs. ToLookup
GroupBy și ToLookup sunt ambele metode de extensie LINQ pentru gruparea colecțiilor, iar principala diferență dintre ele este tipul de returnare și utilizarea.
Metoda GroupBy returnează un obiect IEnumerable<IGrouping<TKey, TElement>>, unde TKey este tipul care reprezintă cheia de grupare, iar TElement este tipul care reprezintă tipul elementului. Această metodă grupează colecția conform selectorului de chei specificat și returnează rezultatul grupării ca o secvență de obiecte IGrouping<TKey, TElement>. IGrouping<TKey, TElement> obiectele reprezintă o colecție de elemente cu aceeași cheie. Poți folosi bucle foreach sau interogări LINQ pentru a itera peste rezultate grupate. Metoda GroupBy este o operație de execuție întârziată care execută operația efectivă de grupare doar când începi să iterezi rezultatele sale.
Metoda ToLookup returnează un obiect ILookup<TKey, TElement>, unde TKey este tipul care reprezintă cheia de grupare, iar TElement este tipul care reprezintă tipul elementului. Metoda grupează colecția conform selectorului de chei specificat și returnează rezultatul grupării ca un obiect ILookup<TKey, TElement>. Obiectele ILookup<TKey, TElement> reprezintă o colecție de elemente cu aceeași cheie. Poți folosi un indexator sau o buclă foreach pentru a accesa rezultatele grupate. Spre deosebire de GroupBy, ToLookup este o acțiune imediată care execută instantaneu acțiunea de grupare și returnează rezultatul când este apelată.
Exemplu: Un elev este într-o clasă, iar o clasă corespunde mai multor elevi. Colecția elevilor conține informații despre clase, iar elevii fiecărei clase (sau clasei specificate) sunt generati pe grupuri de clase.
Codul este următorul:
Așa cum se arată mai jos:
Referință:Autentificarea cu hyperlink este vizibilă.
|