2011-03-24 23 views
24

Merhaba Aşağıda gösterildiği gibi sınıf türü class1 öğesinin bir listesi var. Öğe sözlüğüne grup

var t =(from data in datas group data by data.groupID into dataGroups select dataGroups).ToDictionary(gdc => gdc.ToList()[0].groupID, gdc => gdc.ToList()); 

Olacak thiss

cevap

46

yapmanın daha iyi bir yolu var mı: bu şekilde yapmış

class SampleClass 
{ 
    public int groupID; 
    public string someData; 
}                     

GroupID dayalı bir

Dictionary<int,List<SampleClass>> içine grup I bunları yapmak nasıl Değiştirmek için daha verimli olun:

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

: Ben yapacağı gibi Bunun dışında

gdc => gdc.Key 

görünüyor.

Alternatif olarak, LINQ üzerinde uzatma yöntemleri ile tamam olup olmadığını (ben şahsen onları tercih), onunla daha da kısaltılabilir

:

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