0
我想基於另一列在列表集合中總結一列。根據第二列在列表中總結一列
這是一流的樣子
Date Payment
2015-09-09 500
2015-09-09 200
2017-01-03 150
2017-01-03 300
結果應該是這樣的
Date Payment
2015-09-09 700
2017-01-03 450
代碼:
var result = from e in scheduleDetails
let k = new
{
Date = e.ActualDueDate
}
group e by k into t
select new
{
Date = t.Key.Date,
Payment = t.Sum(e => e.EscrowPayment)
};
List<ScheduleDetails> temp = result.Select(t => new ScheduleDetails(t.Date, t.Payment)).ToList();
我不想匿名類型來所以我創造將其映射到原始對象。爲此,我不得不創建構造函數。
public ScheduleDetails(DateTime? date, decimal? payment)
{
this.ActualDueDate = date;
this.EscrowPayment = payment;
}
問題:
- 這是實現這一目標的最佳方式是什麼?
- 我想要得到的對象是一樣的輸入對象只
輸入有40行,現在有10個,但'ActualDueDate'和'EscrowPayment'是空的所有記錄。 – Shaggy
@Shaggy這是不可能的。 ActualDueDate用於分組。如果您有10個組,則ActualDueDate中應有10個不同的值,結果爲 –
[GroupBy](https://msdn.microsoft.com/fr-fr/library/bb549393(v = vs.110).aspx)has有一個擴展名,可以讓你直接選擇。這可以縮短爲'.GroupBy(sd => sd.ActualDueDate,(k,g)=>新的ScheduleDetails(k,g.Sum(sd => sd.EscrowPayment)))''。 –