VB.NET生成1到10之间的唯一5个数字

Ous*_*ord 2 vb.net random

你好我在0和10之间的5个唯一数字,我做如下:

Dim RandomClass As New Random()
Dim RandomNumber As Integer
For counter As Integer = 0 To 5
    RandomNumber = RandomClass.Next(0, 10)
    MsgBox(RandomNumber )
Next
Run Code Online (Sandbox Code Playgroud)

有时它有效,我得到这些数字:"1,7,4,9,3"但有时我会得到重复的数字,如:"5,2,3,2,7"

我怎样才能确保每次都有唯一的号码?

谢谢.

Mar*_*zek 5

使用HashSet(Of Integer)记住那已经打印出来的数字:

Dim RandomClass As New Random()
Dim RememberSet As New HashSet(Of Integer)

Dim RandomNumber As Integer

While RememberSet.Count < 5
    RandomNumber = RandomClass.Next(0, 10)
    If RememberSet.Add(RandomNumber) Then
        MsgBox(RandomNumber)
    End If
End While
Run Code Online (Sandbox Code Playgroud)

  • 这导致循环比所需的更长.它有效,但它不是最好的解决方案. (2认同)