如果特定列的所有项都为空,我想从DataTable中删除该列.在DataTable中的所有列上执行此操作的最优雅方法是什么?
SLa*_*aks 37
您可以使用此Compute方法,如下所示:
if (table.Compute("COUNT(ColumnName)", "ColumnName <> NULL") == 0)
table.Columns.Remove("ColumnName");
Run Code Online (Sandbox Code Playgroud)
或者,您可以使用LINQ:
if (table.AsEnumerable().All(dr => dr.IsNull("ColumnName")))
table.Columns.Remove("ColumnName");
Run Code Online (Sandbox Code Playgroud)
编辑:完全回答这个问题:
foreach(var column in table.Columns.Cast<DataColumn>().ToArray()) {
if (table.AsEnumerable().All(dr => dr.IsNull(column)))
table.Columns.Remove(column);
}
Run Code Online (Sandbox Code Playgroud)
您需要调用,ToArray因为循环将修改集合.
| 归档时间: |
|
| 查看次数: |
32781 次 |
| 最近记录: |