簡體   English   中英

LINQ:分組屬性后如何在對象內聚合列表

[英]LINQ: how to aggregate list within object after grouping properties

我有一個包含列表的對象ChartObject。 然后,我有一個使用LINQ刪除重復屬性的ChartObjects列表。 但是我不知道如何組合ChartObjects的每個“ itemList”屬性。

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,並且必須進行某種聚合嗎?

假設您只想合並組中的所有項目,那么您正在尋找SelectMany ,並且需要調用ToList以獲得List<Items>

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

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM