.ToLookup<TSource, TKey>
gibt ein zurück ILookup<TKey, TSource>
. ILookup<TKey, TSource>
implementiert auch Schnittstelle IEnumerable<IGrouping<TKey, TSource>>
.
.GroupBy<TSource, TKey>
gibt ein zurück IEnumerable<IGrouping<Tkey, TSource>>
.
ILookup verfügt über die praktische Indexer-Eigenschaft, sodass es wie ein Wörterbuch (oder ein Lookup) verwendet werden kann, GroupBy jedoch nicht. GroupBy ohne Indexer ist ein Problem. Die einzige Möglichkeit, auf das Rückgabeobjekt zu verweisen, besteht darin, es zu durchlaufen (oder eine andere LINQ-Erweiterungsmethode zu verwenden). Mit anderen Worten, in jedem Fall, in dem GroupBy funktioniert, funktioniert ToLookup auch.
All dies lässt mich die Frage offen, warum ich mich jemals mit GroupBy beschäftigen sollte. Warum sollte es existieren?
Lookup
, aber es wird GroupBy
erstellt, wenn das Ergebnis aufgelistet ist. referencesource.microsoft.com/#System.Core/System/Linq/…
GroupBy
IstIQuerable
,ILookup
ist nicht