Reikalavimai: Perskaitykite kitų žmonių techninius tinklaraščius, pastebėkite, kad kai kurie rinkiniai vadina ToLookup metodą, šis metodas nebuvo paliestas, ir tada užklauskite atitinkamos medžiagos, kad sužinotumėte, kaip naudoti šį plėtinio metodą. Metodas ToLookup pateikia reikšmę ToLookup<TSource, TKey> žodynas vienas su daugeliu, skirtas raktams susieti su reikšmių rinkiniu.
GroupBy ir ToLookup
GroupBy ir ToLookup yra LINQ plėtinio metodai, skirti rinkiniams grupuoti, o pagrindinis skirtumas tarp jų yra grąžinimo tipas ir naudojimas.
Metodas GroupBy pateikia objektą IEnumerable<IGrouping<TKey, TElement>>, kur TKey yra tipas, nurodantis grupavimo raktą, o TElement yra tipas, nurodantis elemento tipą. Šis metodas grupuoja rinkinį pagal nurodytą raktų parinkiklį ir pateikia grupavimo rezultatą kaip IGrouping<TKey, TElement> objektų seką. IGrouping<TKey, TElement> objektai yra elementų rinkinys su tuo pačiu raktu. Galite naudoti foreach ciklus arba LINQ užklausas, kad pakartotumėte sugrupuotus rezultatus. GroupBy metodas yra uždelsto vykdymo operacija, kuri vykdo faktinę grupavimo operaciją tik tada, kai pradedate kartoti jos rezultatus.
Metodas ToLookup pateikia objektą ILookup<TKey, TElement>, kur TKey yra tipas, nurodantis grupavimo raktą, o TElement yra tipas, nurodantis elemento tipą. Metodas grupuoja rinkinį pagal nurodytą rakto parinkiklį ir pateikia grupavimo rezultatą kaip ILookup<TKey, TElement> objektą. ILookup<TKey, TElement> objektai reiškia elementų rinkinį su tuo pačiu raktu. Norėdami pasiekti sugrupuotus rezultatus, galite naudoti indeksavimo priemonę arba foreach ciklą. Skirtingai nei GroupBy, ToLookup yra neatidėliotinas veiksmas, kuris iš karto vykdo grupavimo veiksmą ir pateikia rezultatą, kai iškviečiamas.
Pavyzdys: Mokinys yra klasėje, o klasė atitinka kelis mokinius. Mokinių kolekcijoje yra klasės informacija, o kiekvienos klasės (arba nurodytos klasės) mokiniai išvedami pagal klasių grupes.
Kodas yra toks:
Kaip parodyta žemiau:
Nuoroda:Hipersaito prisijungimas matomas.
|