您好我有一个类类型class1的元素列表,如下所示。如何将它们分组到
中 Dictionary<int,List<SampleClass>>
基于groupID
class SampleClass
{
public int groupID;
public string someData;
}
我这样做了:
var t =(from data in datas group data by data.groupID into dataGroups select dataGroups).ToDictionary(gdc => gdc.ToList()[0].groupID, gdc => gdc.ToList());
有更好的方法吗?
答案 0 :(得分:64)
更换效率会更高效:
gdc => gdc.ToList()[0].groupID
使用:
gdc => gdc.Key
除此之外,它看起来像我会做的。
或者,如果您对LINQ的扩展方法没有问题(我个人更喜欢它们),可以通过以下方式进一步缩短:
var t = data.GroupBy(data => data.groupID).ToDictionary(gdc => gdc.Key, gdc => gdc.ToList());