有没有办法转换这样的代码:
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
答案 0 :(得分:19)
Contains
会有效吗?
Dim testAgainst As String() = {"02","03","06","07"}
If Not testAgainst.Contains(someString) Then
btnButton.Enabled = False
End If
答案 1 :(得分:11)
在简单的情况下,您可以(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
答案 2 :(得分:5)
Dim invalidvalues As New List(Of String) From { _
"02", _
"03,", _
"04", _
"07" _
}
If invalidvalues.Contains(x) Then
btnButton.Enabled = False
End If
答案 3 :(得分:0)
怎么样?
Imports System.Text.RegularExpressions
btnButton.Enabled = Regex.IsMatch(someString, "^0[2367]$")