如何计算 LINQ 中 DataTable 的列的总和(到数据集)?

Posted

技术标签:

【中文标题】如何计算 LINQ 中 DataTable 的列的总和(到数据集)?【英文标题】:How to calculate sum of a DataTable's Column in LINQ (to Dataset)? 【发布时间】:2009-02-15 02:24:27 【问题描述】:

我刚刚开始阅读 LINQ,我想开始将它整合到我的代码中。我知道如何通过“Foreach”遍历行或在特定列上执行 compute.sum 来计算 DataTable 列的总和。如何使用 LINQ to DataSet 进行等效操作?

【问题讨论】:

【参考方案1】:

如果没有类型(将int替换为正确的数据类型):

 var sum = table.AsEnumerable().Sum(x=>x.Field<int>(3));

或:

 var sum = table.AsEnumerable().Sum(x=>x.Field<int>("SomeProperty"));

如果输入:

 var sum = table.Sum(x=>x.SomeProperty);

【讨论】:

请注意,您需要 System.Data.DataSetExtensions 程序集才能使上述内容正常工作。 @kervin:另外,您需要确保这是在您的代码文件之上:using System.Linq; 只是为了理解,如果我是正确的,当你说 typedun-typed 时,这是否意味着 asp mvc 中的类型化视图和非类型化视图,我的意思是我们创建的 ViewModel 类?【参考方案2】:

如果你的数据字段是整数

var sum = TableData.Sum(x => x.FieldName);

如果您的数据字段是字符串,那么您需要将其解析为整数

var sum = TableData.Sum(x => Int32.Parse(x.FieldName));

如果您的数据字段是字符串并且您希望将结果存储为字符串

var sum = TableData.Sum(x => Int32.Parse(x.FieldName)).ToString();

【讨论】:

以上是关于如何计算 LINQ 中 DataTable 的列的总和(到数据集)?的主要内容,如果未能解决你的问题,请参考以下文章

自动计算数据表页脚中具有数字数据的列的总和

jquery datatable 如何获取隐藏列的值

修改已有数据的Datatable的列的类型

c# 怎么更改DataTable 中某列的值?

从datatable里取某行某列的值

修改DataTable中某列的数据类型.