【发布时间】:2019-02-17 10:37:24
【问题描述】:
我有一个数据集(汽车):
Brand DateSold Amount Bought/Sold
Toyota 06/07/2015 18.5 Bought
BMW 01/01/2016 25.15 Sold
Mercedes 06/06/2016 20.75 Bought
我想按年份分组并返回金额的总和,即:
Year Amount
2015 -18.5
2016 4.4
并将其输出到列表框中。
我可以在没有买入/卖出条件的情况下求和:
var AmountsByYear = cars.GroupBy(i => i.Date.Year)
.Select(g => new {
Year = g.Key,
Total = g.Sum(i => i.Amount)
}).ToList();
lstAmountsByYear.DataSource = AmountsByYear;
【问题讨论】:
-
使用
Sum表达式中的条件,例如类似g.Sum(i => i.IsSold ? i.Amount : -i.Amount) -
@IvanStoev - 这应该作为答案发布:)