.ToLookup<TSource, TKey>
trả về một ILookup<TKey, TSource>
. ILookup<TKey, TSource>
cũng thực hiện giao diện IEnumerable<IGrouping<TKey, TSource>>
.
.GroupBy<TSource, TKey>
trả về một IEnumerable<IGrouping<Tkey, TSource>>
.
ILookup có thuộc tính trình lập chỉ mục tiện dụng, vì vậy nó có thể được sử dụng theo cách giống như từ điển (hoặc giống như tra cứu), trong khi GroupBy thì không. GroupBy không có trình chỉ mục là một điều khó khăn khi làm việc với; khá nhiều cách duy nhất để bạn có thể tham chiếu đối tượng trả về là lặp qua nó (hoặc sử dụng một phương thức mở rộng LINQ khác). Nói cách khác, bất kỳ trường hợp nào mà GroupBy hoạt động, ToLookup cũng sẽ hoạt động.
Tất cả những điều này khiến tôi đặt ra câu hỏi tại sao tôi lại bận tâm đến GroupBy? Tại sao nó phải tồn tại?
Lookup
, nhưng GroupBy
tạo ra nó khi kết quả được liệt kê referencesource.microsoft.com/#System.Core/System/Linq/...
GroupBy
LàIQuerable
,ILookup
không được