我正在尝试使用LINQ搜索一个DataTable
和另一个DataTable
的值,但到目前为止没有进展。。。怎么做?
在下面的例子中,我有table
,我在其中搜索,还有PlTable
,它只有一列;并且我需要从table
中检索每一行,其中Name
字段在PlTable
的行中至少包含一个Name
字段的字符串。
Dim ePlTable As IEnumerable(Of DataRow) = PlTable.AsEnumerable()
Dim found = From row In table.AsEnumerable
Where row(0).Contains(ePlTable)
Select row
Return found.CopyToDataTable.Rows
它当然不起作用,因为.Contains
希望String
作为参数
当然它不起作用,因为.Contains希望字符串作为参数
这就是问题所在,所以使用强类型Field
扩展方法将其强制转换为正确的类型,并使用Enumerable.Any
查看此Name
:中是否包含至少一个字符串
Dim strings = From row In PlTable Select row.Field(Of String)(0)
Dim found = From row In table.AsEnumerable
Where strings.Any(Function(s) row.Field(Of String)("Name").Contains(s))
Select row
Return found.CopyToDataTable()