以随机顺序循环遍历数组的所有元素?

时间:2016-07-08 15:12:14

标签: .net arrays vb.net loops random

我有一个包含24个元素的1维数组。我想以随机顺序遍历所有这些。我知道如何从1 - 24循环它们,但如何随机选择一个然后另一个,依此类推直到所有元素都被选中?

我使用类似VB的脚本语言(QAWizard),所以我认为任何想法或VB代码都足够了。

2 个答案:

答案 0 :(得分:2)

您可以使用LINQ' OrderByRandom.Next随机订购:

Private Shared _rnd As New Random

Private Sub btn_Click(sender As Object, e As EventArgs) Handles btn.Click
    Dim arr As Integer() = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10}
    For Each value In arr.OrderBy(Function(x) _rnd.Next())
        Debug.WriteLine(value)
    Next

End Sub

答案 1 :(得分:1)

您可以使用LINQ:

Dim randomOrder = From item In yourArray Order By Guid.NewGuid()

For Each item In randomOrder

Next

Guid技巧不是随机化"的最佳方法。一个集合,看看像这样的随机方法:https://stackoverflow.com/a/7513502/284240