对于循环不能正常工作,除非我在循环内添加Msgbox

时间:2017-02-01 09:30:13

标签: vb.net loops for-loop

大家好。

我没有什么问题,根本没有意义。所以我有点简单的循环。我想创建随机整数并删除该整数的特定数组的索引。

完美的工作:

   For i = 1 To CInt(rastgelesoru.Text)
            Dim Rand As New Random()
            Dim xIndex As Integer = Rand.Next(0, AList.Count - 1)
            Dim SelectedValue = AList(xIndex)
            Dim eklepanelrnd As Panel = CType(containerpanel.Controls(SelectedValue), Panel)
            If eklepanelrnd.Tag = "1" Then
                MsgBox(xIndex)
                containerpanelrastgele.Controls.Add(eklepanelrnd)
            End If
            AList.RemoveAt(xIndex)
    Next

例如,我在数组中有500个元素。当我添加如上所述的消息框时,它完美无缺。我得到随机数字。 (最后输出100,65,355,27,472为5)。但是当我删除msgbox行时,我每次都会收到连续的号码。首先,我认为它可能真的是随机的'但不是。每次我得到连任。 (23,24,25,160,161最后输出为5,没有msgbox行。)

没有msgbox行无法正常工作。

   For i = 1 To CInt(rastgelesoru.Text)
            Dim Rand As New Random()
            Dim xIndex As Integer = Rand.Next(0, AList.Count - 1)
            Dim SelectedValue = AList(xIndex)
            Dim eklepanelrnd As Panel = CType(containerpanel.Controls(SelectedValue), Panel)
            If eklepanelrnd.Tag = "1" Then

                containerpanelrastgele.Controls.Add(eklepanelrnd)
            End If
            AList.RemoveAt(xIndex)
    Next

1 个答案:

答案 0 :(得分:1)

@AlexB。评论。

  

不要在循环中创建Random对象,只能创建一个。所以在循环之前将Dim Rand作为New Random()移动。

现在工作完美。谢谢< 3祝你有美好的一天。