我想总结一组双精度型值,但我得到一个运行时异常,如: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分钟......
帮助~~~~
答案 0 :(得分: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);