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

时间:2013-05-23 22:39:02

标签: .net vb.net

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

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

4 个答案:

答案 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]$")
相关问题