2013-10-23 61 views
1

我有一個轉到字典

DbSet<People> 

我試圖進入一個

Dictionary<int, List<People>> 

這我的班級

public People 
{ 
    public int Id { get; set; } 
    public string Name { get; set; } 
    public int Age { get; set; } //this is key of dictionary 
} 

我想組按年齡。所以年齡對於同齡人來說是關鍵。 這是電話讓我的列表

var items = db.People.ToList(); 

我試圖使用ToDictionary方法,但我不知道這是要走的正確途徑。似乎應該有一個lambda聲明來實現這一點。

Dictionary<int, List<People> myDictionary = items.ToDictionary(p => p.Age, p => People); 

回答

4

你必須使用GroupBy第一:

var myDictionary = items.GroupBy(p => p.Age) 
         .ToDictionary(g => g.Key, g => g.ToList()); 

你也可以做到這一點的情況下直接將您的應用程序中執行它的分組到數據塊而不是:

var myDictionary = db.People.GroupBy(p => p.Age) 
         .ToDictionary(g => g.Key, g => g.ToList());