Linq:运算符'/';无法应用于类型为';对象';和';对象';
我想把一个值除以另一个值。公式是这样的 If(Job2=0,0,Job2/Job1) 我写的代码是:Linq:运算符'/';无法应用于类型为';对象';和';对象';,linq,Linq,我想把一个值除以另一个值。公式是这样的 If(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")); double em
double empJob1Count = empYearMonthGroup
.Where(x => x.Row["Job2"] != DBNull.Value)
.Sum(x => x.Row.Field<double>("Job2")/ x => x.Row.Field<double>("Job1"));
double empJob1Count=empYearMonthGroup
.Where(x=>x.Row[“Job2”]!=DBNull.Value)
.Sum(x=>x.Row.Field(“Job2”)/x=>x.Row.Field(“Job1”);
但获取错误时,运算符“/”不能应用于“object”和“object”类型的操作数。请建议如何使用linq c#?执行此操作。您在结果选择器中已经有了
x
参数。以下是正确的语法:
double empJob1Count = empYearMonthGroup
.Where(x => x.Row["Job2"] != DBNull.Value)
.Sum(x => x.Row.Field<double>("Job2") / x.Row.Field<double>("Job1"));
double empJob1Count=empYearMonthGroup
.Where(x=>x.Row[“Job2”]!=DBNull.Value)
.Sum(x=>x.Row.Field(“作业2”)/x.Row.Field(“作业1”));
您可以使用支持空类型的字段
扩展方法:
double empJob1Count = empYearMonthGroup
.Where(x => x.Row.Field<double?>("Job2").HasValue)
.Sum(x => x.Row.Field<double?>("Job2").Value / x.Row.Field<double>("Job1"));
double empJob1Count=empYearMonthGroup
其中(x=>x.Row.Field(“Job2”).HasValue)
.Sum(x=>x.Row.Field(“Job2”).Value/x.Row.Field(“Job1”);
但是,代码中的问题是第二个
x=>
两个lambda表达式的除法当然很有趣:)对于没有值的列,即Job2为空或其值为0.0的列,我得到“NaN”。我如何解决这个问题?