Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/262.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 如何计算数据表的差异';谁的专栏?_C#_Linq_C# 3.0 - Fatal编程技术网

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放入聚合函数中——但是如果需要跟踪“第一”行和“其他”行,则需要引入这样的副作用。