Лесно, ако се провери за множество стойности vb

В Sql можем да филтрираме като SELECT * FROM tableName WHERE columnName IN ("firstValue", "secondValue")

Как да проверя във VB.Net, има ли лесен начин да го направя? или просто ли е

If variable = "firstValue" Or variable = "secondValue"
    'Code Here
End If

person rANth    schedule 02.08.2016    source източник
comment
Case, If, OrElse са няколко, които можете да използвате, изберете един...   -  person zaggler    schedule 02.08.2016


Отговори (3)


Вашият код не е валиден: трябва изрично да сравните стойностите:

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

(OrElse е подобно на Or, но е за предпочитане, защото спира да оценява последващи сравнения, след като намери такова, което пасва, защото тогава, независимо от останалите сравнения, крайният резултат винаги ще бъде True.)

Ако това стане твърде досадно, можете да поставите вашите стойности в колекция и да проверите дали вашата тестова стойност се съдържа в тях:

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

If values.Contains(variable) Then …
person Konrad Rudolph    schedule 02.08.2016
comment
Може би защото не покрива дали има множество стойности, като например › 5 стойности - person Rahul; 10.06.2019
comment
@Rahul Освен че го прави. - person Konrad Rudolph; 11.06.2019

Да, може да направи това с изявление за случай.

Select Case variable
   Case "firstValue","secondValue"
      'code here
End Select
person BigC    schedule 22.04.2020

Ако разглеждате да кажем таблица с данни, можете да направите следното...

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
person coder32    schedule 02.08.2016