使用linq合并集合

Bar*_*osz 1 c# linq collections

我有一组具有重复值的对象.让我们说对象是:

public InvoiceCompany
{
    public decimal InvoiceValue { get; set; }
    public string Company { get; set; }
}
Run Code Online (Sandbox Code Playgroud)

我在List集合中为每个公司分配了多张发票.如何合并集合中的对象,不同的公司并同时添加其InvoiceValues?我想用Linq做到这一点!

gza*_*axx 6

用途GroupBy:

var list = new List<InvoiceCompany>(); //your collection of invoices
var grouped = list.GroupBy(x => x.Company)
                  .Select(g => new InvoiceCompany { Company = g.Key, InvoiceValue = g.Sum(x => x.InvoiceValue) });
Run Code Online (Sandbox Code Playgroud)