Vaatimukset: Lue muiden teknisiä blogeja, huomaa, että jotkut kokoelmat kutsuvat ToLookup-menetelmää, johon ei ole koskettu, ja kysy sitten asiaankuuluvista materiaaleista oppiaksesi tämän laajennusmenetelmän käytön. ToLookup-menetelmä palauttaa arvon ToLookup<TSource, TKey> yksi-moneen sanakirjan avainten yhdistämiseen arvokokoelmaan.
GroupBy vs. ToLookup
GroupBy ja ToLookup ovat molemmat LINQ-laajennusmenetelmiä kokoelmien ryhmittelyyn, ja pääasiallinen ero näiden välillä on palautustyyppi ja käyttötarkoitus.
GroupBy-metodi palauttaa IEnumerable<IGrouping<TKey, TElement>> objektin, jossa TKey on tyyppi, joka edustaa ryhmittelyavainta ja TElement on tyyppi, joka edustaa elementtityyppiä. Tämä menetelmä ryhmittelee kokoelman määritellyn näppäinvalitsimen mukaan ja palauttaa ryhmittelytuloksen IGrouping<TKey, TElement> objektien jonona. IGrouping<TKey, TElement> -objektit edustavat kokoelmaa alkioita, joilla on sama avain. Voit käyttää forach-silmukoita tai LINQ-kyselyitä iterointiin ryhmiteltyjen tulosten yli. GroupBy-menetelmä on viivästetty suoritusoperaatio, joka suorittaa varsinaisen ryhmittelytoiminnon vasta, kun alat käydä läpi sen tuloksia.
ToLookup-menetelmä palauttaa ILookup<TKey, TElement> objektin, jossa TKey on tyyppi, joka edustaa ryhmittelyavainta ja TElement on tyyppi, joka edustaa elementtityyppiä. Metodi ryhmittelee kokoelman määritellyn näppäinvalitsimen mukaan ja palauttaa ryhmittelytuloksen ILookup<TKey, TElement> objektina. ILookup<TKey, TElement> objektit edustavat kokoelmaa alkioita, joilla on sama avain. Voit käyttää indeksaattoria tai forach-silmukkaa päästäksesi käsiksi ryhmiteltyihin tuloksiin. Toisin kuin GroupBy, ToLookup on välitön toiminto, joka suorittaa ryhmittelytoiminnon välittömästi ja palauttaa tuloksen kutsuttaessa.
Esimerkki: Oppilas on luokassa, ja luokka vastaa useita oppilaita. Oppilaskokoelma sisältää luokkatietoja, ja kunkin luokan (tai määritellyn luokan) oppilaat tuotetaan luokkaryhmien mukaan.
Koodi on seuraava:
Kuten alla on esitetty:
Viittaus:Hyperlinkin kirjautuminen on näkyvissä.
|