[英]how can i get the right fields into a group and sum using linq?
我在此結構中有一個對象列表(債務人)
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))});
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.