计算数据表中的正值

时间:2013-12-19 08:46:40

标签: c# linq

是否有一种优雅的方法可以计算数据表中有多少值是正数而无需检查每个元素并进行检查?我已经查看了DataTable.Compute方法和一些LINQ示例,但它们都需要列名,我需要整个表。

2 个答案:

答案 0 :(得分:2)

试试这个:

无需(代码)知道列名称:

dt.AsEnumerable().Select(row1 => dt.Columns.Cast<DataColumn>()
                                   .ToDictionary(column => column.ColumnName, column => row1[column.ColumnName]))
                 .SelectMany(f=>f.Values)
                 .Count(f=>decimal.Parse(f.ToString())>0);

示例:

6积极:

enter image description here

答案 1 :(得分:0)

您是否考虑过使用DataTable.Select?

int TotalPositiveValues = 0;
foreach (DataColumn NextColumn in MyDataTable.Columns)
{
    DataRow[] PositiveRows = MyDataTable.Select(NextColumn.ColumnName + " >=0");
    int TotalPositiveValues += PositiveRows.Length;
}

编辑:如果您的DataTable中的所有值都符合数字。