Answers:
您应该在类上使用ToLookup
扩展方法,如下所示:Enumerable
List<MyObject> list = ...;
ILookup<long, MyObject> lookup = list.ToLookup(o => o.KeyedProperty);
如果要将其放在字典中,则可以使用ToDictionary
扩展方法,如下所示:
IDictionary<long, IEnumerable<MyObject>> dictionary = lookup.ToDictionary(
l => l.Key);
ILookup
而接受的答案不保留引用?
Lookup<TKey, TValue>
可能比a更好Dictionary<TKey, TValue>
。
ILookup
通常是理想的代码内结构,但对于序列化而言,通常处理得不好。