.ToLookup<TSource, TKey>
renvoie un ILookup<TKey, TSource>
. ILookup<TKey, TSource>
implémente également l'interface IEnumerable<IGrouping<TKey, TSource>>
.
.GroupBy<TSource, TKey>
renvoie un IEnumerable<IGrouping<Tkey, TSource>>
.
ILookup a la propriété d'indexation pratique, donc il peut être utilisé d'une manière de type dictionnaire (ou de recherche), contrairement à GroupBy. GroupBy sans l'indexeur est difficile à utiliser; à peu près le seul moyen de référencer l'objet de retour est de le parcourir en boucle (ou d'utiliser une autre méthode d'extension LINQ). En d'autres termes, dans tous les cas où GroupBy fonctionne, ToLookup fonctionnera également.
Tout cela me laisse avec la question pourquoi devrais-je jamais m'embêter avec GroupBy? Pourquoi devrait-il exister?
Lookup
, mais le GroupBy
crée lorsque le résultat est énuméré referencesource.microsoft.com/#System.Core/System/Linq/...
GroupBy
EstIQuerable
,ILookup
n'est pas