.ToLookup<TSource, TKey>
zwraca plik ILookup<TKey, TSource>
. ILookup<TKey, TSource>
implementuje również interfejs IEnumerable<IGrouping<TKey, TSource>>
.
.GroupBy<TSource, TKey>
zwraca plik IEnumerable<IGrouping<Tkey, TSource>>
.
ILookup ma przydatną właściwość indeksatora, więc może być używana w sposób podobny do słownika (lub podobny do wyszukiwania), podczas gdy GroupBy nie może. GroupBy bez indeksatora to uciążliwa praca; właściwie jedynym sposobem, w jaki możesz odwołać się do zwracanego obiektu, jest przejście przez niego (lub użycie innej metody rozszerzenia LINQ). Innymi słowy, w każdym przypadku, gdy działa GroupBy, ToLookup również będzie działać.
Wszystko to pozostawia mi pytanie, dlaczego miałbym kiedykolwiek zawracać sobie głowę GroupBy? Dlaczego miałoby istnieć?
Lookup
, ale GroupBy
tworzy je, gdy wynik jest wyliczany referencjeource.microsoft.com/#System.Core/System/Linq/…
GroupBy
JestIQuerable
,ILookup
nie jest