Požadavky: Přečtěte si technické blogy ostatních, zjistíte, že některé kolekce nazývají metodu ToLookup, tato metoda nebyla použita, a pak se dotazujte na relevantní materiály, abyste se dozvěděli o použití této rozšířené metody. Metoda ToLookup vrací hodnotu ToLookup<TSource, TKey> slovníku jedna-na-mnoho pro mapování klíčů na množinu hodnot.
GroupBy vs. ToLookup
GroupBy a ToLookup jsou obě LINQ rozšiřující metody pro seskupování kolekcí a hlavní rozdíl mezi nimi je typ návratu a použití.
Metoda GroupBy vrací objekt IEnumerable<IGrouping<TKey, TElement>> kde TKey je typ, který reprezentuje klíč pro skupinu, a TElement je typ, který reprezentuje typ prvku. Tato metoda seskupuje kolekci podle specifikovaného klíčového voliče a výsledek seskupení vrací jako sekvenci objektů IGrouping<TKey, TElement>. IGrouping<TKey, TElement> objekty představují kolekci prvků se stejným klíčem. Můžete použít foreach loops nebo LINQ dotazy k iteraci přes seskupené výsledky. Metoda GroupBy je operace zpožděného vykonání, která vykoná skutečnou operaci seskupování až ve chvíli, kdy začnete iterovat její výsledky.
Metoda ToLookup vrací objekt ILopří<TKey, TElement>, kde TKey je typ, který reprezentuje klíč pro seskupení, a TElement je typ, který reprezentuje typ prvku. Metoda seskupuje kolekci podle určeného klíčového voliče a vrací výsledek seskupení jako objekt ILospoj<TKey, TElement>. ILookup<TKey, TElement> objekty představují kolekci prvků se stejným klíčem. Můžete použít indexer nebo foreach loop pro přístup k seskupeným výsledkům. Na rozdíl od GroupBy je ToLookup okamžitá akce, která okamžitě vykoná akci seskupení a po vyvolání vrátí výsledek.
Příklad: Student je ve třídě a třída odpovídá více studentům. Studentská kolekce obsahuje informace o třídě a studenti každé třídy (nebo určené třídy) jsou vypisováni podle skupin tříd.
Kód je následující:
Jak je uvedeno níže:
Odkaz:Přihlášení k hypertextovému odkazu je viditelné.
|