我正在尝试使用LINQ从另一个DataTable
搜索一个DataTable
,但到目前为止没有进展......怎么做?
在下面的示例中,我有table
,其中我搜索,PlTable
,其中只有一列;我需要检索table
中的每一行,其中Name
字段在Name
行中至少包含一个PlTable
字段字符串。
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
作为参数
答案 0 :(得分:1)
当然它不起作用,因为.Contains想要String作为参数
这是问题所在,所以请使用强类型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()