Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Check whether a string is not equal to any of a list of strings

Tags:

.net

vb.net

Is there a way to convert some code like this:

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

kinda into something like this (multiple values for one variable)

If someString <> "02", "03", "06", "07" Then
     btnButton.Enabled = False
End If
like image 316
paulopulus Avatar asked May 23 '13 22:05

paulopulus


3 Answers

Would Contains work?

Dim testAgainst As String() = {"02","03","06","07"}
If Not testAgainst.Contains(someString) Then
    btnButton.Enabled = False
End If
like image 191
Fabian Tamp Avatar answered Nov 09 '22 17:11

Fabian Tamp


You can (ab)use Select for this in simple cases:

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

Also, a common extension that I use is:

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

So:

If Not someString.In("02", "03", "06", "07") Then
    btnButton.Enabled = False
End If
like image 21
Ry- Avatar answered Nov 09 '22 17:11

Ry-


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

If invalidvalues.Contains(x) Then
    btnButton.Enabled = False
End If
like image 5
Johnno Nolan Avatar answered Nov 09 '22 16:11

Johnno Nolan