我有一个包含许多dataTable的数据集。
数据表如下所示,
column1 column2 column3 Name
NA NA NA Ivan
现在,我想从数据集中行值为“ NA”的所有数据表中删除列。
如果可能,如何使用Linq做到这一点?
我猜您实际上是想删除所有表的所有字符串列,其中所有行的所有值都是NA
(或na
)。然后,这将按预期工作:
foreach (DataTable table in ds.Tables)
{
List<DataColumn> stringColumns = table.Columns.Cast<DataColumn>()
.Where(c => c.DataType == typeof(string))
.ToList();
var columnsAllNotAvailable = stringColumns
.Where(c => table.AsEnumerable()
.All(r => String.Equals(r.Field<string>(c), "NA", StringComparison.InvariantCultureIgnoreCase)));
foreach(DataColumn col in columnsAllNotAvailable)
table.Columns.Remove(col);
}
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句