2013-02-21 51 views
1

我試圖用另一個DataTable使用LINQ搜索一個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作爲參數

+0

row(0)的內容是什麼?或者你想檢查名稱是否在'ePlTable'中找到? (除此之外,我傾向於使用字符串(鍵)作爲索引而不是數字索引,如果列的順序發生更改,則不太容易出錯。) – Styxxy 2013-02-21 15:15:56

回答

1

當然這是行不通的,因爲。載有希望的字符串來

這是exatly的問題,所以請使用強類型的Field擴展 方法將其轉換爲正確的類型,並使用Enumerable.Any查看是否至少包含一個字符串包含在此中:

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() 
相關問題