2013-06-20 66 views
1

我希望能夠按特定字段(id)對項目列表進行分組,然後提取id,代碼對的字典。然後我需要訪問id和代碼對來完成一些邏輯。我如何使用linq做到這一點?linq group by並且選擇

例如

Id Code Send 
1 500 1 
1 501 0 
2 600 1 
2 601 0 
2 602 0 
3 700 0 
3 701 1 
3 702 0 
3 703 1 

預期結果 -

1 500,501 
2 600,601,602 
3 700, 701, 702, 703 

這是我迄今爲止 - 努力工作,如何得到的只是代碼爲詞典:

from i in items 
group i by i.Id into g 
select new Dictionary<Guid, List<long>> 
    { 
    g.Key, g.ToList() 
    } 

回答

0

你可以這樣做像這樣:

var res = items 
    .GroupBy(i => i.Id) 
    .ToDictionary(
     g => g.Key 
    , g => g.Select(v => v.Code).ToList() 
    ); 

你的解決方案很近 - 你需要添加一個Code的選擇來完成它。

+0

謝謝,作品! –

0

最後一部分

g.ToList() 

需求是

g.Select(c => c.Code).ToList()