.ToLookup<TSource, TKey>
返回一个ILookup<TKey, TSource>
.ILookup<TKey, TSource>
还实现了接口IEnumerable<IGrouping<TKey, TSource>>
.
.GroupBy<TSource, TKey>
返回一个IEnumerable<IGrouping<Tkey, TSource>>
.
ILookup具有方便的索引器属性,因此它可以以字典(或类似查找)的方式使用,而GroupBy则不能.GroupBy没有索引器是一种痛苦的工作; 几乎是你可以引用返回对象的唯一方法是循环它(或使用另一个LINQ扩展方法).换句话说,任何GroupBy工作的情况下,ToLookup也会起作用.
这一切让我想到为什么我会打扰GroupBy?为什么要存在?