LINQ不相等不起作用

时间:2014-11-26 17:19:59

标签: vb.net linq

我有一个只有一列和一列值的数据表。我想创建一个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个字符匹配。你能帮忙吗?谢谢。

1 个答案:

答案 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
相关问题