2014-01-06 25 views
3
var GrandTotal = dt.AsEnumerable().Sum(cols => Convert.ToDecimal(cols.Field<string>("TotalPrice"))); 

是給錯誤:如何用LINQ做一列的總和?

Unable to cast object of type 'System.Decimal' to type 'System.String' 

我應如何修正呢?

回答

3

TotalPrice您的TotalPrice列包含十進制值,但您試圖將行字段值轉換爲string。投射到decimal,而不是直接:

var GrandTotal = dt.AsEnumerable() 
        .Sum(r => r.Field<decimal>("TotalPrice")); 
+1

三江源.. @Sergey Berezovskiy – SRJ