gpt4 book ai didi

c# - 如何在对另一个属性求和的同时聚合一个属性?

转载 作者:行者123 更新时间:2023-11-30 16:06:56 24 4
gpt4 key购买 nike

我有一张发票 list ,每条记录都包含一个客户 ID 和一个金额。目的是生成一个付款列表,其中每个客户的每笔付款都是唯一的(每个客户可能有多张发票),并将相关发票的总金额相加。

生成不同发票的列表(关于客户 ID)是 very easy .问题是我只有第一张发票金额的值(value),而不是总和。

List<Payment> distinct = invoices
.GroupBy(invoice => invoice.CustomerId)
.Select(group => group.First())
.Select(invoice => new Payment
{
CustomerId = invoice.CustomerId,
Total = invoice.Amount
}).ToList();

是否有一个流畅的 LINQ-fu 或我需要在我的列表中使用foreach

最佳答案

如果你有这样的东西

Invoice[] invoices = new Invoice[3];

invoices[0] = new Invoice { Id = 1, Amount = 100 };
invoices[1] = new Invoice { Id = 1, Amount = 150 };
invoices[2] = new Invoice { Id = 2, Amount = 300 };

那么你可以把你的目标定为

var results = from i in invoices
group i by i.Id into g
select new { Id = g.Key, TotalAmount = g.Sum(i => i.Amount)};

关于c# - 如何在对另一个属性求和的同时聚合一个属性?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31538822/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com