.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 GroupBytworzy je, gdy wynik jest wyliczany referencjeource.microsoft.com/#System.Core/System/Linq/…
GroupByJestIQuerable,ILookupnie jest