在if语句中是否可以有多个可以评估为true的条件?主要是速记,以节省一些时间:
示例:
if value = 1 or value = 9 or value = 3 or value = 17 Then return True
我想知道是否有这种效果(在MSDN中找不到)
if value = 1,9,3,17 Then return True
答案 0 :(得分:2)
无法使用IF语句执行此操作,但您可以使用:
SELECT CASE value
CASE 1, 3, 9, 17
' Do something
CASE 2, 4
' Do another thing
CASE ELSE
' Do something else
END SELECT
答案 1 :(得分:2)
如果它是一个return语句,你可以把它缩短一点;
Return value = 1 Or value = 9 Or value = 3 Or value = 17
此外,如果值在数组中,您可以使用Linq - 任何函数;
Dim value As Integer = 1
Dim values = New Integer() {1, 9, 3, 17}
Return values.Any(Function(number) number = value)
答案 2 :(得分:2)
您也可以尝试:
If (New List(Of Integer)(New Integer() {1, 3, 5, 7, 9}).Contains(value)) Then
Return TRUE
End If
答案 3 :(得分:1)
你无法在VB中完成你想要的东西,但是你可以绕过它。这是一种方法。将您的值放入Array
。您可以使用Array
方法搜索IndexOf
。如果IndexOf
返回高于-1的数字,则在数组中找到该项。您需要在MSDN page上阅读一些问题。
Dim value As Boolean
Dim myList() As Integer = {1, 9, 3, 17}
If Array.IndexOf(myList, 12) > -1 Then
value = True
Else
value = False
End If
Console.WriteLine("Found: {0}", value)
您还可以将测试缩短为内联比较和分配,从而无需使用上面的If
语句。
value = (Array.IndexOf(myList, 12) > -1)