LINQ 从列表中的 dataTable 中提取部分匹配项

LINQ Extract partial match from dataTable from list

我正在尝试从 dataTable 中提取列“A”末尾有列表中的字符串的所有行。

例如:

数据表

ID     A
1      1220
2      1221
3      1223

列表

{"20","23"}

到return 1 12203 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,包含列 IdA