如何使用 LINQ 将正确的字段放入组和求和中
本文关键字:求和 字段 LINQ 何使用 | 更新日期: 2023-09-27 18:33:11
我在这个结构中有一个对象(债务人)列表
public class DebtorDto
{
public string OutstandingBalance { get; set; }
public string Name { get; set; }
public string Company { get; set; }
public string InvoiceNumber { get; set; }
}
看起来像
OUTSTANDINGBALANCE NAME COMPANY INVOICENUMBER
1500 Debtor1 comp1 1235
1600 Debtor1 comp3 1236
150 Debtor2 comp1 1234
1700 Debtor2 comp4 1237
15000 Debtor1 comp1 1238
150 Debtor1 comp3 1239
500 Debtor4 comp1 1274
1500 Debtor3 comp3 1634
500 Debtor3 comp1 1334
我想做的是提供每个债务人所欠的总金额(总和)
例如(请注意,下面的总金额不准确,我刚刚编造了它们,但他们需要汇总上述金额)
Debtor1 31050
Debtor2 3050
Debtor3 1050
Debtor4 41050
到目前为止,我所拥有的是
var query = from e in _allDebtors.GroupBy(x => x.Company)
.Select(y => y.Sum(z => decimal.Parse(z.OutstandingBalance))))))
这实际上给了我正确的金额,如下所示,但我不知道如何在那里获得债务人的名字?
31050
3050
1050
41050
您需要
更改Select
中的返回值:
var query = _allDebtors.GroupBy(x => x.Company)
.Select(y => new { Company=y.Key, Total=y.Sum(z => decimal.Parse(z.OutstandingBalance)) });
请注意,这是按公司 - 如果您希望由债务人提供,它将是:
var query = _allDebtors.GroupBy(x => x.Name)
.Select(y => new { Name=y.Key, Total=y.Sum(z => decimal.Parse(z.OutstandingBalance)) });
var query = from e in _allDebtors.GroupBy(x => x.Company)
.Select(y => new {
Name = y.Key,
Sum = y.Sum(z => decimal.Parse(z.OutstandingBalance))
});
var query = from e in _allDebtors.GroupBy(x => x.Company)
.Select(y => new {Name = y.Key, TotalAmount = y
.Sum(z =>
decimal.Parse(z.OutstandingBalance))});