LINQ 从列表中的 dataTable 中提取部分匹配项
LINQ Extract partial match from dataTable from list
我正在尝试从 dataTable 中提取列“A”末尾有列表中的字符串的所有行。
例如:
数据表
ID A
1 1220
2 1221
3 1223
列表
{"20","23"}
到return
1 1220 和 3 1223
(From x In dt.AsEnumerable()
Where list.Any(Function(l) l.EndsWith(x("number").ToString))
Select x).CopyToDataTable
这就是我到目前为止所提出的,但如果列表中有完全匹配项,它只会提取一行,例如 12220,对于 20 它没有 return 任何东西。
你能帮忙吗?
您用 C#
标记了您的问题。在 C# 中,查询将是
dataTable
.Where(r => list.Any(s => r.A.EndsWith(s)))
我试过的测试代码是
var array = dataSet1
.DataTable1
.Where(r => list.Any(s => r.A.EndsWith(s)))
.ToArray();
其中 dataSet1 是一个强类型数据集,而 DataTable1 是一个 table,包含列 Id
和 A
我正在尝试从 dataTable 中提取列“A”末尾有列表中的字符串的所有行。
例如:
数据表
ID A
1 1220
2 1221
3 1223
列表
{"20","23"}
到return 1 1220 和 3 1223
(From x In dt.AsEnumerable()
Where list.Any(Function(l) l.EndsWith(x("number").ToString))
Select x).CopyToDataTable
这就是我到目前为止所提出的,但如果列表中有完全匹配项,它只会提取一行,例如 12220,对于 20 它没有 return 任何东西。
你能帮忙吗?
您用 C#
标记了您的问题。在 C# 中,查询将是
dataTable
.Where(r => list.Any(s => r.A.EndsWith(s)))
我试过的测试代码是
var array = dataSet1
.DataTable1
.Where(r => list.Any(s => r.A.EndsWith(s)))
.ToArray();
其中 dataSet1 是一个强类型数据集,而 DataTable1 是一个 table,包含列 Id
和 A