Zahteve: Preberite tehnične bloge drugih ljudi, ugotovite, da nekatere zbirke imenujejo metodo ToLookup, ta metoda še ni bila uporabljena, nato pa poizvedite po relevantnih materialih, da se naučite uporabe te metode razširitve. Metoda ToLookup vrne vrednost ToLookup<TSource, TKey> slovarja ena na več za preslikavo ključev na zbirko vrednosti.
GroupBy proti ToLookup
GroupBy in ToLookup sta obe LINQ razširitvi za združevanje zbirk, glavna razlika med njima pa je vrsta vrnitve in uporaba.
Metoda GroupBy vrne objekt IEnumerable<IGrouping<TKey, TElement>>, kjer je TKey tip, ki predstavlja ključ za skupino, TElement pa tip, ki predstavlja tip elementa. Ta metoda razvrsti zbirko glede na določeni izbirnik tipk in vrne rezultat združevanja kot zaporedje objektov IGrouping<TKey, TElement>. IGrouping<TKey, TElement> objekti predstavljajo zbirko elementov z istim ključem. Za iteracijo po združenih rezultatih lahko uporabite foreach zanke ali LINQ poizvedbe. Metoda GroupBy je zakasnjena operacija izvajanja, ki dejansko operacijo združevanja izvede šele, ko začnete iterirati skozi njene rezultate.
Metoda ToLookup vrne objekt ILookup<TKey, TElement>, kjer je TKey tip, ki predstavlja ključ za skupino, in TElement tip, ki predstavlja tip elementa. Metoda združuje zbirko glede na določen izbirnik ključev in vrne rezultat združevanja kot objekt ILospoj<TKey, TElement>. ILookup<TKey, TElement> objekti predstavljajo zbirko elementov z istim ključem. Za dostop do združenih rezultatov lahko uporabite indeksator ali foreach zanko. Za razliko od GroupBy je ToLookup takojšnja akcija, ki takoj izvede akcijo združevanja in ob klicu vrne rezultat.
Primer: učenec je v razredu, razred pa ustreza več učencem. Študentska zbirka vsebuje informacije o razredu, študenti vsakega razreda (ali določenega razreda) pa se izpišejo glede na skupine razredov.
Koda je naslednja:
Kot je prikazano spodaj:
Referenčni:Prijava do hiperpovezave je vidna.
|