使用linq根据where条件从DataTable中删除列
我有一个包含许多dataTable的数据集 .
数据表如下所示,
column1 column2 column3 Name
NA NA NA Ivan
现在我想从数据集中删除行值为“NA”的所有数据表中的列 .
如果可能的话,如何使用Linq执行此操作?
回答(2)
您可以通过方法Remove删除collecion中的列,linq只能帮助您找到所需的列 . 找到所需的列,然后将其删除 .
var dt = new DataTable();
List<DataColumn> delete = new List<DataColumn>();
foreach (DataRow row in dt.Rows)
foreach (DataColumn col in dt.Columns)
if (row[col]?.ToString() == "NA" && !delete.Contains(col))
delete.Add(col);
foreach (var col in delete)
dt.Columns.Remove(col);
2 years ago
我想你实际上想要删除所有行的所有字符串列,其中所有行的所有值都是
NA
(或na
) . 然后这按预期工作: