2012-07-18 35 views
0

我想彙總一組double類型值,但我得到了一個運行時異常,例如:Object必須是類型爲Int32的行:resultSet.Sum(d => d。數據)。使用Linq來總結數據(雙重類型)錯誤。對象必須爲Int32類型

for (int i = 1; i <= 7; ++i) { 
    double sum = 0; 
    DateTime timeSpot1 = fromDate.AddDays(i - 1); 
    DateTime timeSpot2 = fromDate.AddDays(i); 

    var resultSet = distributionDatePoint 
         .Where(d = > 
            d.Datetime.Day.CompareTo(timeSpot1) > 0 
           && d.Datetime.Day.CompareTo(timeSpot2) < 0); 
    if (resultSet != null) { 
     sum = resultSet.Sum(d = > d.Data); 
    } 

    if (sum > 0) { 
     chartData += sum.ToString("0.00"); 
    } 
    else { 
     chartData += "0,"; 
    } 
}​ 

d.Data是雙重型。我試圖用這種方式使用Sum()

resultSet.Sum<Double>(d => d.Data); 

但是錯誤依然存在。

任何人都可以幫助我嗎?由於我一直停留30分鐘......

幫助~~~~

+0

例外?編譯器錯誤?在'resultSet.Sum'行? – 2012-07-18 04:38:11

+0

@AdamRobinson,是的,我得到了resultSet.Sum行的異常。 – Franva 2012-07-18 04:41:46

+0

調試器在resultSet中說的是什麼?我會在'if(resultSet!= null)'行放置一個斷點並在調試器中檢查它。 – Jamie 2012-07-18 04:47:54

回答

0

你的問題就在這裏

var resultSet = distributionDatePoint 
         .Where(d = > 
            d.Datetime.Day.CompareTo(timeSpot1) > 0 
           && d.Datetime.Day.CompareTo(timeSpot2) < 0); 

你是比較一個Int32爲DateTime對象。

你需要做的是這樣

var resultSet = distributionDatePoint 
         .Where(d = > 
            d.Datetime.Day.CompareTo(timeSpot1.Day) > 0 
           && d.Datetime.Day.CompareTo(timeSpot2.Day) < 0); 
+0

正確的點!非常感謝! – Franva 2012-07-18 05:49:50

相關問題