当前位置: 首页 > 编程语言 > C#

有条件地平均DataTable中的一列数据分享

时间:2023-04-10 20:49:56 C#

有条件地平均DataTable中的一列数据我有一个DataTable对象dTable,其中所有的DataColumn数据类型都是string或double。列中的某些数字不存在。即=空。现在我有下面的代码来找到平均值,当有值时它工作正常。varsum=dTable.AsEnumerable().Average(x=>{if(dTable.Columns[col]!=null){returnx.Field(dTable.Columns[col].ColumnName);}else{return???;};});我的问题是跳过不满足x时返回什么?当我在dTable中遇到一个空单元格时,它似乎不知道该怎么办。或者,如果有一条完全不同的路径,我应该走下去......请做......我认为你想要做的是首先应用Where子句以消除所需col中缺少数据的行:varavg=dTable.AsEnumerable().Where(x=>x[col]!=DBNull.Value).Average(x=>x.Field(col));将Linq与Where()子句一起使用,这样它只会对您需要的内容求平均值.AsEnumerable().Where(x=>x[columnIndex]!=DBNull.Value).Average(x=>x.Field(columnIndex));我可以给你写一个简单的for循环吗?并不是说你应该走这条路,只是一个选择,因为我不习惯你拥有的那种代码intcount=0;双和=0.0;foreach(DataRowrowindTable.Rows){if(row[col]!=DBNull.Value){sum+=row[col];//假设它的类型是double,如果不是count++则转换它;}}双平均=总和/计数;如果表中缺少该值,则不能将其视为0?如果是这样,那么在这种情况下您可以简单地返回0。但是如果null意味着它甚至不应该包含在平均值中......那么你需要自己计算平均值,类似于上面的帖子。不确定我是否正确理解了这个问题......希望它有所帮助。以上就是C#学习教程:有条件地平均DataTable中一列数据的共享。如果对你有用,需要进一步了解C#学习教程,希望大家多多关注。本文收集自网络,不代表立场。如涉及侵权,请点击右侧联系管理员删除。如需转载请注明出处: