C# 如何计算数据表的差异';谁的专栏?
如果我想进行求和,我将继续:C# 如何计算数据表的差异';谁的专栏?,c#,linq,c#-3.0,C#,Linq,C# 3.0,如果我想进行求和,我将继续: private static double ColumnSummation(DataTable dt, string columnName) { var sum = dt.AsEnumerable().Sum(x => x.Field<double>(columnName)); return sum; } 私有静态双列求和(DataTable dt,string columnName) { var sum=dt.AsEnume
private static double ColumnSummation(DataTable dt, string columnName)
{
var sum = dt.AsEnumerable().Sum(x => x.Field<double>(columnName));
return sum;
}
私有静态双列求和(DataTable dt,string columnName)
{
var sum=dt.AsEnumerable().sum(x=>x.Field(columnName));
回报金额;
}
现在,如果我必须执行列的减法,我如何继续,因为没有减法扩展方法。。。还有别的办法吗
请帮助如果您的DataTable列有3个值,比如{20,30,-10},那么它的和将是20+30-10=40。。但想想看,差异只能是两个值之间的差异。告诉我如何计算{20,30,-10}的差。。您希望这三个值之间的差异产生什么结果。。也许我们可以尝试建议一个实现。您仍然可以使用Sum()函数,只是其他值应该为负数。您需要明确什么减去什么(第一行减去所有其他行,或者所有行减去最后一行?),这就是为什么没有标准的减法聚合函数的原因。求和是确定的——只需将所有内容相加——但在减法中顺序是重要的(a-b-a)。@hallie,数据库表不能保证按顺序枚举,LINQ的求和也不能保证按顺序调用lambda,因此不能谈论“第一”行和“其他”行。一般来说,不应该将具有副作用的lambda放入聚合函数中——但是如果需要跟踪“第一”行和“其他”行,则需要引入这样的副作用。