15

次のようなコードを変換する方法はありますか:

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

このようなものにちょっと(1つの変数に対して複数の値)

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

4 に答える 4

26

うまくいくでしょうかContains

Dim testAgainst As String() = {"02","03","06","07"}
If Not testAgainst.Contains(someString) Then
    btnButton.Enabled = False
End If
于 2013-05-23T22:44:37.830 に答える
14

Select単純なケースでは、これを(ab) 使用できます。

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
于 2013-05-23T22:45:16.530 に答える
5
Dim invalidvalues As New List(Of String) From { _
    "02", _
    "03,", _
    "04", _
    "07" _
}

If invalidvalues.Contains(x) Then
    btnButton.Enabled = False
End If
于 2013-05-23T22:46:15.417 に答える