0

我有一个数据集合,并希望摆脱包含空值或空值的列。示例应如下所示:

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 新手,我不太清楚实现预期结果的正确方法。任何建议/代码示例将不胜感激。

4

2 回答 2

4
// 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);
    }

}
于 2013-09-24T02:28:23.910 回答
1

如果列是一致的,那么您要问的问题是“我如何只选择特定的列?”

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 });
于 2013-09-24T03:43:51.240 回答