Arrays vb.net数组和或运算符

Arrays vb.net数组和或运算符,arrays,vb.net,loops,Arrays,Vb.net,Loops,这是我的密码。。。我试图将我的数组值与另一个数组中的每个值进行比较,如果有相同的数字,则temp变量将是递增的,但这里的问题是它起作用了。该值为1 2 3 4 5 6不是我所期望的值。有人能帮忙吗?这应该会给出您所寻求的结果。”OrElse'用于代替旧的'Or',因为它会使比较短路,这意味着语句在第一次成功匹配后停止比较或“在VB6和更早版本中没有短路,而VB.NET保留了该行为以简化迁移旧代码的任务 temp = 0 count = 0 Do If arraywinner(count

这是我的密码。。。我试图将我的数组值与另一个数组中的每个值进行比较,如果有相同的数字,则
temp
变量将是递增的,但这里的问题是它起作用了。该值为1 2 3 4 5 6不是我所期望的值。有人能帮忙吗?

这应该会给出您所寻求的结果。”OrElse'用于代替旧的'Or',因为它会使比较短路,这意味着语句在第一次成功匹配后停止比较或“在VB6和更早版本中没有短路,而VB.NET保留了该行为以简化迁移旧代码的任务

temp = 0
count = 0

Do
    If arraywinner(count) = first(0) Or first(1) Or first(2) Or first(3) Or first(4) Or first(5) Then
        temp = temp + 1
    End If

    count = count + 1
Loop Until count > 5

这应该会给出你想要的结果。”OrElse'用于代替旧的'Or',因为它会使比较短路,这意味着语句在第一次成功匹配后停止比较或“在VB6和更早版本中没有短路,而VB.NET保留了该行为以简化迁移旧代码的任务

temp = 0
count = 0

Do
    If arraywinner(count) = first(0) Or first(1) Or first(2) Or first(3) Or first(4) Or first(5) Then
        temp = temp + 1
    End If

    count = count + 1
Loop Until count > 5

这里还有其他四种方法。这取决于您对什么代码感到满意,以及它的易读性。它们各自产生相同的结果

    Dim temp As Integer = 0
    Dim arraywinner() As Integer = New Integer(5) {1, 4, 27, 39, 41, 46}
    Dim first() As Integer = New Integer(5) {1, 2, 3, 4, 5, 6}

    For count As Integer = 0 To 5
        If arraywinner(count) = first(0) _
            OrElse arraywinner(count) = first(1) _
            OrElse arraywinner(count) = first(2) _
            OrElse arraywinner(count) = first(3) _
            OrElse arraywinner(count) = first(4) _
            OrElse arraywinner(count) = first(5) Then
            temp = temp + 1
        End If
    Next

这里还有其他四种方法。这取决于您对什么代码感到满意,以及它的易读性。它们各自产生相同的结果

    Dim temp As Integer = 0
    Dim arraywinner() As Integer = New Integer(5) {1, 4, 27, 39, 41, 46}
    Dim first() As Integer = New Integer(5) {1, 2, 3, 4, 5, 6}

    For count As Integer = 0 To 5
        If arraywinner(count) = first(0) _
            OrElse arraywinner(count) = first(1) _
            OrElse arraywinner(count) = first(2) _
            OrElse arraywinner(count) = first(3) _
            OrElse arraywinner(count) = first(4) _
            OrElse arraywinner(count) = first(5) Then
            temp = temp + 1
        End If
    Next

你不能将一个值与许多其他类似的值进行比较。您可以这样做:
如果x=y或z,则
。您必须这样做:
如果x=y或x=z,则
。此外,您应该使用
OrElse
而不是
。这是无效的代码。通过使用For循环逐步遍历first()元素来简化表达式。您也可以这样做:
如果{y,z}.包含(x),则
是位运算符,因此您将数组内部(计数)与按位或所有的
first
从0到5进行比较。您无法将单个值与许多其他类似的值进行比较。您可以这样做:
如果x=y或z,则
。您必须这样做:
如果x=y或x=z,则
。此外,您应该使用
OrElse
而不是
。这是无效的代码。通过使用For循环逐步遍历first()元素来简化表达式。您也可以这样做:
如果{y,z}.包含(x),则
是位运算符,因此您要比较arraywinner(count)从0到5,按位或所有
第一个
。解释使用OrElse.的原因,并显示一个惯用的.NET替代方案-既用于单个
计数
(),也用于整个内容(
来自数组内部,其中first.Contains(a)
)。这是OP要求的答案。解释使用OrElse的原因。并展示一个惯用的.NET备选方案-既可以用于单个
计数
(),也可以用于整个内容(
,从数组内部开始,其中第一个.Contains(a)
)。这是OP要求的答案。