我有一个LINQ - 转换清单辞典值列表
List<MyObject>
,我从数据库中检索。但是,我希望它通过MyObject中的属性进行键控以用于分组目的。什么是LINQ的最好办法施展我的列表:
Dictionary<long, List<MyObject>>
我有以下几点:
myObjectList.ToDictionary(x => x.KeyedProperty)
但它返回:
Dictionary<long, MyObject>
我有一个LINQ - 转换清单辞典值列表
List<MyObject>
,我从数据库中检索。但是,我希望它通过MyObject中的属性进行键控以用于分组目的。什么是LINQ的最好办法施展我的列表:
Dictionary<long, List<MyObject>>
我有以下几点:
myObjectList.ToDictionary(x => x.KeyedProperty)
但它返回:
Dictionary<long, MyObject>
这听起来像你要组MyObject
实例KeyedProperty
并将该分组放入Dictionary<long,List<MyObject>>
。如果是的话请尝试以下
List<MyObject> list = ...;
var map = list
.GroupBy(x => x.KeyedProperty)
.ToDictionary(x => x.Key, x => x.ToList());
你应该在Enumerable
class使用ToLookup
extension method像这样:
List<MyObject> list = ...;
ILookup<long, MyObject> lookup = list.ToLookup(o => o.KeyedProperty);
如果你想放置在一本字典,那么你可以使用ToDictionary
extension method,像这样:
IDictionary<long, IEnumerable<MyObject>> dictionary = lookup.ToDictionary(
l => l.Key);
你想让字典键入WHIM MyObject的属性? - 你有他们的完整列表.... – 2010-08-23 15:41:25