提取具有少量条件的 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");
我有一个数据表如下:
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");