Проверьте, не соответствует ли строка ни одному из списка строк

Есть ли способ конвертировать какой-то код следующим образом:

If someString <> "02" And someString <> "03" And someString <> "06" And someString <> "07" Then
     btnButton.Enabled = False
End If

вид в нечто подобное (несколько значений для одной переменной)

If someString <> "02", "03", "06", "07" Then
     btnButton.Enabled = False
End If

Ответ 1

Работает ли Contains?

Dim testAgainst As String() = {"02","03","06","07"}
If Not testAgainst.Contains(someString) Then
    btnButton.Enabled = False
End If

Ответ 2

Вы можете (ab) использовать Select для этого в простых случаях:

Select Case someString
    Case "02", "03", "06", "07"
    Case Else
        btnButton.Enabled = False
End Select

Кроме того, я использую общее расширение:

<Extension()>
Function [In](Of TItem, TColl)(this As TItem, ParamArray items() As TColl)
    Return Array.IndexOf(items, this) > -1
End Function

Итак:

If Not someString.In("02", "03", "06", "07") Then
    btnButton.Enabled = False
End If

Ответ 3

Dim invalidvalues As New List(Of String) From { _
    "02", _
    "03,", _
    "04", _
    "07" _
}

If invalidvalues.Contains(x) Then
    btnButton.Enabled = False
End If

Ответ 4

Как насчет этого?

Imports System.Text.RegularExpressions    

btnButton.Enabled = Regex.IsMatch(someString, "^0[2367]$")