.ToLookup<TSource, TKey>
renvoie un ILookup<TKey, TSource>
. ILookup<TKey, TSource>
implémente l'interface IEnumerable<IGrouping<TKey, TSource>>
.
.GroupBy<TSource, TKey>
renvoie un IEnumerable<IGroupking<Tkey, TSource>>
.
ILookup a la pratique de l'indexeur de la propriété, de sorte qu'il peut être utilisé dans un dictionnaire (ou de recherche) qu'manière, alors que le Groupe ne peut pas. GroupBy sans l'indexeur est une douleur à travailler avec, à peu près la seule façon vous pouvez alors faire référence au retour de l'objet est en bouclant sur elle (ou en utilisant un autre LINQ-méthode d'extension). En d'autres termes, tous les cas que le Groupe fonctionne, ToLookup fonctionnera aussi bien.
Tout cela me laisse avec la question de savoir pourquoi aurais-je jamais la peine avec GroupBy? Pourquoi devrait-il exister?