Linq:运算符'/'不能应用于'object'和'object'类型的操作数

时间:2013-04-03 12:58:03

标签: linq

我想将一个值与另一个值分开。公式就是这样

如果(Job2 = 0,0,Job2 / Job1) 我写的代码是:

 double empJob1Count = empYearMonthGroup
     .Where(x => x.Row["Job2"] != DBNull.Value)
     .Sum(x => x.Row.Field<double>("Job2")/ x => x.Row.Field<double>("Job1"));

但是得到错误,运算符'/'不能应用于'object'和'object'类型的操作数。请建议如何使用linq c#?

完成此操作

2 个答案:

答案 0 :(得分:1)

结果选择器中已有x参数。这是正确的语法:

double empJob1Count = empYearMonthGroup
     .Where(x => x.Row["Job2"] != DBNull.Value)
     .Sum(x => x.Row.Field<double>("Job2") / x.Row.Field<double>("Job1"));

答案 1 :(得分:0)

您可以使用支持可空类型的Field扩展方法:

double empJob1Count = empYearMonthGroup
    .Where(x => x.Row.Field<double?>("Job2").HasValue)
    .Sum(x => x.Row.Field<double?>("Job2").Value / x.Row.Field<double>("Job1"));

但是,代码中的问题是第二个x =>