2

我在这个结构中有一个对象(债务人)列表

 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      

我想做的是显示每个债务人所欠的总金额(Sum)

例如(请注意下面的总金额不准确,我只是编造的,但他们需要将上述金额合计)

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
4

3 回答 3

1

您需要在以下位置更改您的返回值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)) });
于 2012-05-03T23:11:08.897 回答
0
var query = from e in _allDebtors.GroupBy(x => x.Company)
                                 .Select(y => new {
                                              Name = y.Key,
                                              Sum = y.Sum(z => decimal.Parse(z.OutstandingBalance))
                                  });
于 2012-05-03T23:11:26.150 回答
0
 var query = from e in _allDebtors.GroupBy(x => x.Company)
            .Select(y => new {Name = y.Key, TotalAmount = y
                                                 .Sum(z => 
                                                  decimal.Parse(z.OutstandingBalance))});
于 2012-05-03T23:12:20.827 回答