Ответ 1
Работает ли Contains
?
Dim testAgainst As String() = {"02","03","06","07"}
If Not testAgainst.Contains(someString) Then
btnButton.Enabled = False
End If
Есть ли способ конвертировать какой-то код следующим образом:
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
Работает ли Contains
?
Dim testAgainst As String() = {"02","03","06","07"}
If Not testAgainst.Contains(someString) Then
btnButton.Enabled = False
End If
Вы можете (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
Dim invalidvalues As New List(Of String) From { _
"02", _
"03,", _
"04", _
"07" _
}
If invalidvalues.Contains(x) Then
btnButton.Enabled = False
End If
Как насчет этого?
Imports System.Text.RegularExpressions
btnButton.Enabled = Regex.IsMatch(someString, "^0[2367]$")