提取具有少量条件的 DataTable

Extract a DataTable with few conditions

我有一个数据表如下:

ColumnA ColumnB ColumnC
1001    Null     10
1001    W1        5
1001    W2        4
1002    Null      45
1002    W3        15
1002    W4        23
1003    W5        25
1003    W6        10
1003    W7        11

我想从上面提取另一个 DataTable,有一个条件,如果 ColumnB 中的第一个值对于 ColumnA 是 Null,然后提取它。

这意味着我需要检查 ColumnB 中的 Null 值并从 ColumnA 中提取相应的不同值。

输出应该是

ColumnA
1001
1002

我写了一些东西:

DataTable dt2 = dt.DefaultView.ToTable(true, "ColumnA");

但它只给了我来自 ColumnA 的不同值。它不符合我的要求。

我想一些 LINQ 查询可以在这里工作,但我不知道 LINQ。

请专家帮忙

此致

试试这个:-

var result = dt.AsEnumerable().Where(x => x.Field<string>("ColumnB") == null)
                              .Select(x => x.Field<int>("ColumnA"));

编辑:

要获取 ColumnA 中那些在 ColumnB 中有 Null 的值的计数:-

var result = dt.AsEnumerable().GroupBy(x => x.Field<int>("ColumnA"))
               .Where(x => x.Any(z => z.Field<string>("ColumnB") == null))
               .Select(x => new { ColumnValue = x.Key, Count = x.Count() });

不用 LINQ 也可以做到,只需使用 DataView:

var dv = dt.DefaultView;
dv.RowFilter = "ColumnB is null";   
var dt2 = dv.ToTable(true, "ColumnA");