簡體   English   中英

如何使用linq將正確的字段歸為一組並求和?

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM