检查字符串是否不等于任何字符串列表

pau*_*lus 12 .net vb.net

有没有办法转换这样的代码:

If someString <> "02" And someString <> "03" And someString <> "06" And someString <> "07" Then
     btnButton.Enabled = False
End If
Run Code Online (Sandbox Code Playgroud)

有点像这样(一个变量的多个值)

If someString <> "02", "03", "06", "07" Then
     btnButton.Enabled = False
End If
Run Code Online (Sandbox Code Playgroud)

Fab*_*amp 22

Contains工作吗?

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


Ry-*_*Ry- 13

Select在简单的情况下,你可以(ab)使用它:

Select Case someString
    Case "02", "03", "06", "07"
    Case Else
        btnButton.Enabled = False
End Select
Run Code Online (Sandbox Code Playgroud)

另外,我使用的常见扩展名是:

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

所以:

If Not someString.In("02", "03", "06", "07") Then
    btnButton.Enabled = False
End If
Run Code Online (Sandbox Code Playgroud)

  • 选择案例滥用+1.即使它有点明显,我也没有意识到你可以将它用于此目的. (3认同)

Joh*_*lan 5

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

If invalidvalues.Contains(x) Then
    btnButton.Enabled = False
End If
Run Code Online (Sandbox Code Playgroud)