我有一个只有一列和一列值的数据表。我想创建一个LINQ语句来从这个数据表中排除一些值。然后使用结果作为查找表从其他数据中提取数据。这是我的代码。
Dim cs1DT = From row In dt1
Where row.Field(Of String)(0) <> "BS2" Or row.Field(Of String)(0) <> "BS3"
Select row
Order By row Ascending
For Each s As String In cs1DT.ToString
Dim dt = From row In dt2.AsEnumerable
Where row.Field(Of String)("Q_id").Contains(s)
Select row
If dt.Count > 0 Then ListDT.Add(dt.CopyToDataTable)
Next
它不起作用。输出包括值BS2和BS3。情况更糟。它会跳过我在数据表dt2开头的前两个值列表。我无法弄清楚出了什么问题。 dt1中的值与dt2中的前3个字符匹配。你能帮忙吗?谢谢。
答案 0 :(得分:1)
尝试使用And
逻辑运算符作为示例:
Dim cs1DT = (From row In dt1
Where row.Field(Of String)(0) <> "BS2" And row.Field(Of String)(0) <> "BS3"
Order By row Ascending
Select row.Field(Of String)(0)).ToList()
For Each s As String In cs1DT
Dim dt = From row In dt2.AsEnumerable
Where row.Field(Of String)("Q_id").Contains(s)
Select row
If dt.Count > 0 Then ListDT.Add(dt.CopyToDataTable)
Next