Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/vb.net/16.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Vb.net VB中IF语句中的多个True条件_Vb.net - Fatal编程技术网

Vb.net VB中IF语句中的多个True条件

Vb.net VB中IF语句中的多个True条件,vb.net,Vb.net,在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 不能使用IF语句执行此操作,但可以使用: SELECT CASE value CASE 1, 3, 9, 17 ' Do s

在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

不能使用IF语句执行此操作,但可以使用:

SELECT CASE value
    CASE 1, 3, 9, 17
        ' Do something
    CASE 2, 4
        ' Do another thing
    CASE ELSE
        ' Do something else
END SELECT

如果它是一个return语句,你可以像这样把它缩短一点

Return value = 1 Or value = 9 Or value = 3 Or value = 17
另外,如果值位于数组中,则可以使用Linq-Any函数

Dim value As Integer = 1
Dim values = New Integer() {1, 9, 3, 17}
Return values.Any(Function(number) number = value)
您也可以尝试以下方式:

If (New List(Of Integer)(New Integer() {1, 3, 5, 7, 9}).Contains(value)) Then
    Return TRUE
End If

你不能在VB中做你想做的事情,但是你可以绕过它。这里有一个方法。将值放入数组中。可以使用IndexOf方法搜索数组。如果返回的数字大于-1,则在数组中找到该项。有一些你想在网上读到的陷阱

您还可以将测试缩短为内联比较和赋值,从而无需使用上面的If语句:

value = (Array.IndexOf(myList, 12) > -1)

所有伟大的提示。我总是忘记许多缩短代码的方法。需要一个备忘单或类似的最常见的!
value = (Array.IndexOf(myList, 12) > -1)