2011-03-24 75 views
24

嗨我有一個類類class1的元素列表,如下所示。我如何將其整合到一個組成元素字典

Dictionary<int,List<SampleClass>>基礎上,組ID

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

是否有這樣做thiss

回答

46

它將更好的方法替換效率更高:

gdc => gdc.ToList()[0].groupID 

有:

gdc => gdc.Key 

除此之外,它看起來像我會做。

或者,如果你是好與擴展方法在LINQ(我個人比較喜歡他們),它可以進一步仍以縮短:

var t = data.GroupBy(data => data.groupID).ToDictionary(gdc => gdc.Key, gdc => gdc.ToList());