以下代码应该采用每行的学费率的简单平均值,但是要求规定导入的数据集允许空值。
下面的行没有正确检查值,我收到错误:“ArgumentNullException未被用户代码处理,Value不能为null。”
TUITIONCurr = g
.Where(p => !object.Equals(p.Field<double>("TUITION"),null))
.DefaultIfEmpty()
.Average(p => p.Field<double>("TUITION")),
答案 0 :(得分:2)
您应该与DBNull.Value
进行比较,而不是null
:
TUITIONCurr = g
.Where(p => !object.Equals(p.Field<double>("TUITION"), DBNull.Value))
.Average(p => p.Field<double>("TUITION"));
过滤掉空值后,您不需要DefaultIfEmpty()
来电。
答案 1 :(得分:1)
请尝试使用DataRow.IsNull
,而不是DataRow.Field
方法。此外,您无需拨打DefaultIfEmpty()
。
E.g:
TUITIONCurr = g
.Where(p => !p.IsNull("TUITION"))
.Average(p => p.Field<double>("TUITION")),