Wymagania: Przeczytaj techniczne blogi innych osób, zobacz, że niektóre kolekcje nazywają metodę ToLookup, ta metoda nie została zmieniona, a następnie zapytaj odpowiednie materiały, aby dowiedzieć się, jak ta metoda jest używana. Metoda ToLookup zwraca wartość ToLookup<TSource, TKey> słownika jeden-do-wielu do mapowania kluczy na zbiór wartości.
GroupBy kontra ToLookup
GroupBy i ToLookup to metody rozszerzenia LINQ do grupowania kolekcji, a główną różnicą między nimi jest typ zwrotu i użycie.
Metoda GroupBy zwraca obiekt IEnumerable<IGrouping<TKey, TElement>> gdzie TKey to typ reprezentujący klucz grupowania, a TElement to typ reprezentujący typ elementu. Ta metoda grupuje kolekcję według określonego selektora klucza i zwraca wynik grupowania jako sekwencję obiektów IGrouping<TKey, TElement>. Obiekty IGrouping<TKey, TElement> reprezentują zbiór elementów o tym samym kluczu. Możesz użyć pętli foreach lub zapytań LINQ, aby iterować pogrupowane wyniki. Metoda GroupBy to operacja opóźnionego wykonania, która faktycznie grupuje tylko wtedy, gdy zaczniesz iterować jej wyniki.
Metoda ToLookup zwraca obiekt ILookup<TKey, TElement>, gdzie TKey to typ reprezentujący klucz grupowania, a TElement to typ reprezentujący typ elementu. Metoda grupuje kolekcję według określonego selektora klucza i zwraca wynik grupowania jako obiekt ILookup<TKey, TElement>. Obiekty ILookup<TKey, TElement> reprezentują zbiór elementów o tym samym kluczu. Możesz użyć indeksera lub pętli foreach, aby uzyskać dostęp do pogrupowanych wyników. W przeciwieństwie do GroupBy, ToLookup to natychmiastowa akcja, która natychmiast wykonuje grupowanie i zwraca wynik po wywołaniu.
Przykład: Uczeń jest w klasie, a klasa odpowiada kilku uczniom. Kolekcja uczniów zawiera informacje o klasie, a uczniowie każdej klasy (lub określonej klasy) są generowani według grup klas.
Kod jest następujący:
Jak pokazano poniżej:
Odniesienie:Logowanie do linku jest widoczne.
|