是否有任何功能或操作,如:是否有任何運營商在VB.net的功能類似於一個在SQL
If RoleName in ("Val1", "Val2" ,"Val2") Then
'Go
End If
相反的:
If RoleName = "Val1" Or RoleName = "Val2" Or RoleName = "Val2" Then
'Go
End If
是否有任何功能或操作,如:是否有任何運營商在VB.net的功能類似於一個在SQL
If RoleName in ("Val1", "Val2" ,"Val2") Then
'Go
End If
相反的:
If RoleName = "Val1" Or RoleName = "Val2" Or RoleName = "Val2" Then
'Go
End If
嘗試使用數組,然後你可以使用包含擴展:
Dim s() As String = {"Val1", "Val2", "Val3"}
If s.Contains(RoleName) Then
'Go
End If
或不申報行:
If New String() {"Val1", "Val2", "Val3"}.Contains(RoleName) Then
'Go
End If
從OP,如果包含擴展不可用,你可以試試這個:
If Array.IndexOf(New String() {"Val1", "Val2", "Val3"}, RoleName) > -1 Then
'Go
End If
你也可以使用一個Select..Case
聲明:
Select Case RoleName
Case "Val1", "Val2", "Val3"
' Whatever
End Select
可讀性+1,即使它與其他答案相比有點無聊:) – MarkJ
您可以使用包含如圖所示通過LarsTech,但它也很容易添加In
擴展方法:
Public Module Extensions
<Extension()> _
Public Function [In](Of T)(value As T, ParamArray collectionValues As T()) As Boolean
Return collectionValues.Contains(value)
End Function
End Module
您可以使用它像這樣:
If RoleName.In("Val1", "Val2", "Val3") Then
'Go
End If
+1僅用於創意! – MarkJ
謝謝您的回答,但它拋出: 「包含」不「的System.Array」的一員,我 已經找到了解決辦法,請更新你的答案: @ If(Array.IndexOf(New String(){「Val1」,「Val2」,「Val3」},RoleName)> -1)Then' – Alaa
@Ala您必須使用較舊的框架(2.0?)。 – LarsTech
.NET FRAMEWORK 3.5 – Alaa