2015-05-14 98 views
0

我有一個包含列表的對象ChartObject。然後我有一個使用LINQ刪除重複屬性的ChartObjects列表。但我不知道如何組合ChartObjects的每個「itemList」屬性。LINQ:分組屬性後如何在對象內聚合列表

public class ChartObject 
{ 
    public string Type { get; set; } 
    public int Year { get; set; } 
    public long Cost { get; set; } 
    public List<Items> itemList { get; set; } 
} 

List<ChartObject> coList = GetItems(); 

result = coList.GroupBy(i => new { i.Type, i.Year }).Select(g => new ChartObject 
{ 
    Type = g.Key.Type,   
    Year = g.Key.Year, 
    Cost = g.Sum(i => i.Cost), 
    itemList = g.Select(i => i.itemList) //Does not work 
}).ToList(); 

我假設它不像只編譯itemList那麼簡單,就像編譯器說的那樣,並且必須要做某種聚合?

回答

2

假設你只是想所有的項目結合在一組,你要找的SelectMany,你會需要調用ToList獲得List<Items>

g.SelectMany(i => i.itemList).ToList(); 
+0

是這個工程。我早些時候嘗試過,但開始質疑它是否有效,因爲我通過我修改過的視圖驗證了我的結果。 –

相關問題