.ToLookup<TSource, TKey>
devuelve un ILookup<TKey, TSource>
. ILookup<TKey, TSource>
también implementa interfaz IEnumerable<IGrouping<TKey, TSource>>
.
.GroupBy<TSource, TKey>
devuelve un IEnumerable<IGrouping<Tkey, TSource>>
.
ILookup tiene la práctica propiedad de indexador, por lo que se puede usar como en un diccionario (o en una búsqueda), mientras que GroupBy no. GroupBy sin el indexador es una molestia para trabajar; Prácticamente, la única forma en que puede hacer referencia al objeto de retorno es recorriéndolo (o utilizando otro método de extensión LINQ). En otras palabras, en cualquier caso en que funcione GroupBy, ToLookup también funcionará.
Todo esto me deja con la pregunta de por qué me molestaría en usar GroupBy. ¿Por qué debería existir?
Lookup
, pero lo GroupBy
crean cuando el resultado se enumera reference.microsoft.com/#System.Core/System/Linq/…
GroupBy
EsIQuerable
,ILookup
no es