.ToLookup<TSource, TKey>
restituisce un ILookup<TKey, TSource>
. ILookup<TKey, TSource>
implementa anche l'interfaccia IEnumerable<IGrouping<TKey, TSource>>
.Perché ToLookup e GroupBy sono diversi?
.GroupBy<TSource, TKey>
restituisce un IEnumerable<IGrouping<Tkey, TSource>>
.
iLookup ha la proprietà indicizzatore a portata di mano, in modo che possa essere utilizzato in modo simile ai dizionari (o lookup-like), mentre GroupBy non può. GroupBy senza l'indicizzatore è un problema con cui lavorare; praticamente l'unico modo in cui puoi quindi fare riferimento all'oggetto restituito è eseguirne il looping (o usare un altro metodo di estensione LINQ). In altre parole, in ogni caso che funziona GroupBy, funzionerà anche ToLookup.
Tutto questo mi lascia con la domanda perché mai dovrei perdere tempo con GroupBy? Perché dovrebbe esistere?
'GroupBy' è' IQuerable', 'ILookup' non è – Magnus
GroupBy doesn' t enumerare la lista [ToLookup] (http://msdn.microsoft.com/en-us/library/system.linq.enumerable.tolookup.aspx) lo enumera allo stesso modo ToList/ToArray – Aducci
L'ho nominato per la riapertura poiché la domanda è presumibilmente a duplicato di è su * IGrouping * piuttosto che su * GroupBy * e * ILookup * piuttosto che * ToLookup *. Le differenze tra queste sono diverse dalle differenze tra queste. Questo dovrebbe essere evidente dalle differenze nelle risposte tra le domande. – Sam