.ToLookup<TSource, TKey>
restituisce un ILookup<TKey, TSource>
. ILookup<TKey, TSource>
implementa anche l'interfaccia IEnumerable<IGrouping<TKey, TSource>>
.
.GroupBy<TSource, TKey>
restituisce un IEnumerable<IGrouping<Tkey, TSource>>
.
ILookup ha la pratica proprietà indicizzatore, quindi può essere utilizzato in un modo simile a un dizionario (o simile a una ricerca), mentre GroupBy non può. GroupBy senza l'indicizzatore è un problema con cui lavorare; praticamente l'unico modo in cui è possibile fare riferimento all'oggetto restituito è eseguendo un ciclo attraverso di esso (o utilizzando un altro metodo di estensione LINQ). In altre parole, in ogni caso in cui GroupBy funzioni, anche ToLookup funzionerà.
Tutto questo mi lascia con la domanda perché dovrei mai preoccuparmi di GroupBy? Perché dovrebbe esistere?
Lookup
, ma lo GroupBy
creano quando il risultato è enumerato. referencesource.microsoft.com/#System.Core/System/Linq/…
GroupBy
ÈIQuerable
,ILookup
non è