2014-10-29 85 views
1

它們之間的關係是許多期刊的一個順序。現在我想要得到所有掛單的總和(或者在Order實體中被標記爲false,IsDelivered下的記錄)。Linq在列表中使用sum()列表

到目前爲止,我有這個疑問,但似乎無法得到工作時,我想補充.Sum()

Orders .Where(o => o.IsDelivered == false) .Select(o => new { pendingOrders = o.Journals.Sum(j => j.TotalAmount) })

到目前爲止,這個結果:

概括地說,我怎樣才能得到他們的總和?如果查詢需要更改或應該是一個新的。這是值得歡迎的。任何幫助將非常感激。謝謝!

回答

4

您可以通過幾種方式做到這一點:

  • 你可以添加Sum(n => n.pendingOrders)到您的查詢結尾加起來的數值,或
  • 您可以在Select之前使用SelectMany,並使用Sum而不是Select

這兩種方法中的任何一種都可以工作。

3

在這種情況下,它是最容易使用SelectManyMSDN)扁平化的集合,然後使用Sum

Orders.Where(o => !o.IsDelivered).SelectMany(o => o.Journals).Sum(j => j.TotalAmount);