LINQ:如何在对属性

时间:2015-05-14 16:49:31

标签: c# linq

我有一个包含列表的对象ChartObject。然后我有一个ChartObjects列表,我使用LINQ删除重复的属性。但我不知道如何组合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,并且必须要进行某种聚合?

1 个答案:

答案 0 :(得分:2)

假设您只想组合群组中的所有项目,那么您正在寻找SelectMany,并且您需要致电ToList以获得{{1} }}:

List<Items>