You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

C#:无需指定列名/索引检测DataTable含空值的行

检测DataTable中包含空值的行(无需指定列)

没问题,这事儿很容易解决!你之前的写法指定了列索引,但其实我们可以借助LINQ的Any()方法,轻松检查行内任意一列是否存在空值,完全不用硬编码列名或索引。

这里有两种常用的实现方式,你可以根据习惯选择:

方法1:利用ItemArray属性直接检查单元格值数组

var rowsWithNulls = excelTable.AsEnumerable()
    .Where(row => row.ItemArray.Any(item => item == DBNull.Value));

ItemArray会把当前行的所有单元格值打包成一个对象数组,我们只需要判断这个数组里是否存在DBNull.Value(DataTable中空值的标准表示)就行,简单直接。

方法2:遍历表的列集合进行检查

var rowsWithNulls = excelTable.AsEnumerable()
    .Where(row => row.Table.Columns.Cast<DataColumn>()
        .Any(col => row.IsNull(col)));

这种方式更贴合DataTable的原生API:通过row.Table.Columns拿到当前表的所有列,转成DataColumn集合后,用row.IsNull(col)方法逐个判断列是否为空,最后用Any()确认是否存在至少一个空值列。

如果之后你需要找所有列都为空的行,只需要把Any()换成All()就可以了,非常灵活。

内容的提问来源于stack exchange,提问作者Andre Villanueva

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.15 08:45:04