首页 > 解决方案 > c#在DataTable中计算行的所有值都等于1的行

问题描述

我有一个数据表,其中的列和行是在运行时创建的,因此列名可能会有所不同,行号也会有所不同。每个单元格的值只能是 1 或 0。

我可能会得到一个数据表,例如 3 列。例如

Age | Sex | Location
-------------------
1   | 0   | 1
-------------------
0   | 1   | 0
--------------------
1   | 1   | 1
--------------------
0   | 1   | 0
--------------------
1   | 1   | 1
--------------------

我希望能够只计算每列包含 1 的行。所以上面的例子会返回 2。

标签: c#

解决方案


遍历行和列:

int rows = 0;
foreach (DataRow row in dt.Rows)
    if (!dt.Columns.Cast<DataColumn>().Any(x => row[x.ColumnName]?.ToString() != "1"))
        rows++;

推荐阅读