多值的简单if检查VB

3
在Sql中,我们可以使用如下语句进行筛选: SELECT * FROM tableName WHERE columnName IN ("firstValue", "secondValue")
在VB.Net中如何检查呢?是否有简单的方法?或者只需要:
If variable = "firstValue" Or variable = "secondValue"
    'Code Here
End If

"Case, If, OrElse" 是你可以使用的一些关键词,选择一个即可... - Trevor
这个回答解决了你的问题吗?检查一个字符串是否不等于字符串列表中的任何一个 - GSerg
4个回答

5

您的代码无效:您需要明确比较值:

If variable = "firstValue" OrElse variable = "secondValue" Then

(OrElseOr类似,但更优,因为它一旦找到符合条件的值就停止后续比较。这样,无论其余比较结果如何,最终结果都将始终为True。)

如果这变得太繁琐,你可以将你的值放入一个集合中,并检查您的测试值是否包含在其中:

Dim values As New List(Of String) From {"firstValue", "secondValue"}

If values.Contains(variable) Then …

也许是因为它没有涵盖多个值的情况,比如说大于5个值。 - Rahul
@Rahul 除了它确实做到了。 - Konrad Rudolph

2

是的,可以使用Case语句来实现这个功能。

Select Case variable
   Case "firstValue","secondValue"
      'code here
End Select

1

这是一个非常古老的问题,但可以像这样完成:

    {"firstValue", "secondValue"}.contains(Variable)

这正是我正在寻找的东西! - undefined

0
如果您正在查看数据表,可以执行以下操作...
dim myvar as string() = ""

For Each dr As DataRow In Table1.Rows             
         if dr("TABLE1_COLUMNNAME").toString = "Something" then 
         myvar = dr("TABLE1_COLUMNNAME").toString  
         end if
 Next

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接