0

我想总结一组双精度类型值,但是我得到了一个运行时异常,例如:Object必须是Int32该行的类型:resultSet.Sum(d => d.Data)。

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分钟......

求助~~~~

4

1 回答 1

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);
于 2012-07-18T04:46:37.530 回答