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

后端 未结 4 1686
野性不改
野性不改 2021-02-19 06:29

Is there a way to convert some code like this:

If someString <> \"02\" And someString <> \"03\" And someString <> \"06\" And someString <>         


        
相关标签:
4条回答
  • 2021-02-19 07:08
    Dim invalidvalues As New List(Of String) From { _
        "02", _
        "03,", _
        "04", _
        "07" _
    }
    
    If invalidvalues.Contains(x) Then
        btnButton.Enabled = False
    End If
    
    0 讨论(0)
  • 2021-02-19 07:09

    Would Contains work?

    Dim testAgainst As String() = {"02","03","06","07"}
    If Not testAgainst.Contains(someString) Then
        btnButton.Enabled = False
    End If
    
    0 讨论(0)
  • 2021-02-19 07:22

    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
    
    0 讨论(0)
  • 2021-02-19 07:23

    How about this?

    Imports System.Text.RegularExpressions    
    
    btnButton.Enabled = Regex.IsMatch(someString, "^0[2367]$")
    
    0 讨论(0)
提交回复
热议问题