C# 如何在LINQ中合并GroupBy的结果

C# 如何在LINQ中合并GroupBy的结果,c#,linq,C#,Linq,我想按产品ID过滤IEnumerable,但我想在结果中包含产品的所有注释 public class Product { public int ProductId { get; set; } public decimal Quantity { get; set; } public List<ProductComments> Comments { get; set; } } 公共类产品 { public int ProductId{get;set;} 公共十进

我想按产品ID过滤
IEnumerable
,但我想在结果中包含产品的所有注释

public class Product
{
    public int ProductId { get; set; }
    public decimal Quantity { get; set; }
    public List<ProductComments> Comments { get; set; }
}
公共类产品
{
public int ProductId{get;set;}
公共十进制数量{get;set;}
公共列表注释{get;set;}
}
例如: 我有3种产品

编号:1,数量:10,备注:2

编号:1,数量:20,备注:1

编号:2,数量:5,备注:1

我现在看到的是以下结果:

Id:1,数量:30,注释:3(我想要这里的实际对象,而不仅仅是计数)

编号:2,数量:5,备注:1

如何使用LINQ实现这一点?我认为这里的方法是使用
GroupBy


谢谢

这将根据需要对您的输入进行分组:

var grouped = products.GroupBy(x => x.ProductId).Select(x => new
        {
            Id = x.Key,
            Quantity = x.Sum(y => y.Quantity),
            Comments = x.SelectMany(y => y.Comments)
        });
代码用于计算所有数量的总和,并将注释列表合并为一个


在线演示:

您使用Linq和
GroupBy尝试了什么?如何使用iSyncEnumerable?SelectMany和SelectManyAwait似乎不适用于这些。但实际上,这是另一个问题。您询问如何使用
列表执行此操作。