在Visual Basic中,有没有一种方法可以让我从数字列表中选择一个随机数,而不是选择两个数字之间的随机数?
换句话说,我想要一个类似Random().Next(1, 3, 4, 6, 7)
的东西,它将从那些数字中选择一个随机数(因此,选择2是不可选项)
我看过here,但似乎找不到任何东西。
答案 0 :(得分:0)
尝试以下操作:
Imports System
Public Module Module1
Private Function NextRandom(ParamArray numbers() As Integer) As Integer
Dim Result As Integer = Integer.MinValue
If numbers.Length > 0 Then
Dim rnd As New Random
Dim i As Integer = rnd.Next(0, numbers.Length)
Result = numbers(i)
End If
Return Result
End Function
Public Sub Main()
Console.writeline("Your next number is: {0}", NextRandom(1, 3, 5, 6, 7, 8, 9))
End Sub
End Module
更多信息和示例here
代码here
的工作示例希望这会有所帮助。
答案 1 :(得分:0)
将列表定义为数组:
<steps>
然后使用标准的random.next生成数组的索引:
Dim List = New Integer() {Your numbers here}
然后将您的随机数定义为与数组索引相对应的数字:
Dim generator As New Random
Dim index As Integer
index = generator.Next(0, List.length)
答案 2 :(得分:0)
如果您只希望列表中的每个值一次,则只需随机排列列表即可。
Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
Dim lst As New List(Of Integer) From {1, 3, 4, 6, 7}
Dim shuffledList As List(Of Integer) = lst.OrderBy(Function(i) Rnd.Next()).ToList()
For Each i In shuffledList
Debug.Print(i.ToString)
Next
End Sub
每次单击按钮都会得到不同的订单。