2009-12-21 79 views
0

我不知道如何做一個簡單的小數值總和。LINQ to SQL十進制值的總和

Table<StaffTime> times = ctx.GetTable<StaffTime>(); 

var query = from t in times 
      select new 
      { 
       t.Hours.Sum() 
      } 

是不是一個擴展方法?我錯過了什麼?

鮑勃

+1

作爲提示,對於代碼段,使用101010按鈕來設置它們的格式(否則會丟失換行符,泛型參數等)。 – itowlson 2009-12-21 22:18:37

+2

嗨bobuva - 它看起來像你問了很多關於這個問題,但沒有標記任何答案爲「接受」。如果您的問題的答案解決了您的問題,那麼您應該回頭閱讀並使用帖子中的複選標記圖標標記已接受的答案。 – womp 2009-12-21 22:35:02

回答

4

嘗試這種情況:

var sum = (from t in times select t.Hours).Sum(); 

這當然是假定t.Hours是這些類型中的一種:

Decimal
Double
Int32
Int64
Nullable<Decimal>
Nullable<Double>
Nullable<Int32>
Nullable<Int64>
Nullable<Single>

+0

安德魯, 我使用的是選擇新的,如下面創建一個匿名類型:在次 VAR的查詢=在t 選擇新 { t.Hours.Sum(), t.StaffID, ... }; 我不確定我可以在這種情況下使用Sum擴展方法。 – bobuva 2009-12-23 17:47:02

+0

你是對的 - 那麼'Sum'方法不適用於你的情況。 – 2009-12-23 19:29:56

4

薩姆超過IEnumerable<decimal>一個擴展方法(或INT或其他)。 t.Hours是一個單個的十進制值(我假設),所以不能總結。

如果你想要的時間總和,寫times.Sum(t => t.Hours)