1

我正在尝试使用 LINQDataTable从另一个值中搜索一个DataTable,但到目前为止没有任何进展......怎么做?

在下面的示例中,我有table,我在其中搜索,并且PlTable,它只有一列;我需要从中检索每一行table,其中该字段在的行Name中至少包含一个字段字符串。NamePlTable

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作为论点

4

1 回答 1

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()
于 2013-02-21T15:17:09.117 回答