分组成元素字典

时间:2011-03-24 04:35:43

标签: c# linq group-by

您好我有一个类类型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());

有更好的方法吗?

1 个答案:

答案 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());