.ToLookup<TSource, TKey>
を返しますILookup<TKey, TSource>
。ILookup<TKey, TSource>
インターフェイスも実装していますIEnumerable<IGrouping<TKey, TSource>>
。
.GroupBy<TSource, TKey>
を返しますIEnumerable<IGrouping<Tkey, TSource>>
。
ILookup には便利な indexer プロパティがあるため、辞書のような (またはルックアップのような) 方法で使用できますが、GroupBy はできません。インデクサーなしで GroupBy を使用するのは面倒です。その後、戻りオブジェクトを参照できる唯一の方法は、それをループする (または別の LINQ 拡張メソッドを使用する) ことです。つまり、GroupBy が機能する場合は、ToLookup も同様に機能します。
このすべてから、なぜ GroupBy を気にする必要があるのかという疑問が残ります。なぜそれが存在する必要があるのですか?