LINQ sum返回错误的结果

时间:2012-12-06 09:45:01

标签: linq-to-sql

我有一个包含以下数字的行的表:

4191808.51
3035280.22
3437796.06
4013772.33
1740652.56
0

该表的总和为16419309.68

当我对该表执行Linq SUM查询时,它返回一个完整的不同数字:19876858.14

我用来做总和的代码如下:

IEnumerable<MyData> data = _myRepository.GetMatching(myValue);
decimal sumSales = data.Sum(x => x.Sales);

可能导致这种情况的原因是什么?我怀疑有一些最大十进制值,但无法找到关于

的信息

1 个答案:

答案 0 :(得分:0)

请你检查一下

IEnumerable<MyData> data = _myRepository.GetMatching(myValue);

在执行后的调试器中。我怀疑你正在选择一些不同的数据 - 而不是你在样本中显示的数据。我试图重新创建你的情况LinqPad,但不断得到正确答案。

decimal[] data = {
    4191808.51m
    ,3035280.22m
    ,3437796.06m
    ,4013772.33m
    ,1740652.56m
    ,0m
};

decimal sumSales = data.Sum();
sumSales.Dump();

获得: 16419309.68