关于 vb.net:LINQ not equal doesn’t work

LINQ not equal doesn't work

我有一个只有一列和一个值列表的数据表。我想创建一个 LINQ 语句来从这个数据表中排除一些值。然后将结果用作查找表以从其他数据表中提取数据。这是我的代码。

1
2
3
4
5
6
7
8
9
10
11
   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 个字符匹配。你能帮忙吗?谢谢你。


尝试使用 And 逻辑运算符,例如:

1
2
3
4
5
6
7
8
9
10
11
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