如何计算 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;
只是为了理解,如果我是正确的,当你说 typed
和 un-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 的列的总和(到数据集)?的主要内容,如果未能解决你的问题,请参考以下文章