使用 LINQ 删除空列
本文关键字:删除 LINQ 使用 | 更新日期: 2023-09-27 18:32:42
我有一个数据集合,想删除包含空值或空值的列。示例应如下所示:
REGION | STATE | COUNTY | PROGRAM 1 | PROGRAM 2 | PROGRAM 3 | PROGRAM 4 | ...
------------------------------------------------------------------------------
"North" | null | null | "Foo" | null | "Bar" | null |...
"East" | null | null | "Duh" | null | "Whew" | null |...
结果可能是:
REGION | PROGRAM 1 | PROGRAM 3 | ...
-------------------------------------
"North" | "Foo" | "Bar" | ...
"East" | "Duh" | "Whew" | ...
请注意,空列非常一致(即 STATE 自始至终都是空的)。作为 LINQ 新手,我无法完全弄清楚实现所需结果的正确方法。任何建议/代码示例将不胜感激。
// get all columns to array
var columns = yourDataTable.Columns.Cast<DataColumn>().ToArray();
foreach(var col in columns) {
// check column values for null
if (yourDataTable.AsEnumerable().All(dr => dr.IsNull(col)))
{
// remove all null value columns
yourDataTable.Columns.Remove(col);
}
}
如果列一致,您问的问题是否为"如何仅选择特定列?
var result = from x in myTable
select new { x.Region, x.Program1, x.Program3 };
或使用扩展方法格式:
var result = myTable.Select(x => new { x.Region, x.Program1, x.Program3 });