如何从给定的字符串列表中选择任何随机字符串?例子:
List1: banana, apple, pineapple, mango, dragon-fruit
List2: 10.2.0.212, 10.4.0.221, 10.2.0.223
当我调用诸如randomize(List1) = somevar之类的函数时,它只会从该特定列表中获取任何字符串。somevar中的结果将是完全随机的。如何做呢?非常感谢你 :)
如何从给定的字符串列表中选择任何随机字符串?例子:
List1: banana, apple, pineapple, mango, dragon-fruit
List2: 10.2.0.212, 10.4.0.221, 10.2.0.223
当我调用诸如randomize(List1) = somevar之类的函数时,它只会从该特定列表中获取任何字符串。somevar中的结果将是完全随机的。如何做呢?非常感谢你 :)
采用Random
Dim rnd = new Random()
Dim randomFruit = List1(rnd.Next(0, List1.Count))
请注意,如果要在循环中执行此代码,则必须重用随机实例。否则这些值将重复,因为 random 是用当前时间戳初始化的。
所以这有效:
Dim rnd = new Random()
For i As Int32 = 1 To 10
    Dim randomFruit = List1(rnd.Next(0, List1.Count))
    Console.WriteLine(randomFruit)
Next
因为总是使用相同的随机实例。
但这不起作用:
For i As Int32 = 1 To 10
    Dim rnd = new Random()
    Dim randomFruit = List1(rnd.Next(0, List1.Count))
    Console.WriteLine(randomFruit)
Next
    创建List一个Strings。
创建一个随机数生成器:Random类
调用随机数生成器的NextInt()方法List.Count作为上限。
返回List[NextInt(List.count)]。
任务完成 :)
生成一个介于 1 和列表大小之间的随机数,并将其用作索引?
试试这个:
Public Function randomize(ByVal lst As ICollection) As Object
    Dim rdm As New Random()
    Dim auxLst As New List(Of Object)(lst)
    Return auxLst(rdm.Next(0, lst.Count))
End Function
或仅用于字符串列表:
Public Function randomize(ByVal lst As ICollection(Of String)) As String
    Dim rdm As New Random()
    Dim auxLst As New List(Of String)(lst)
    Return auxLst(rdm.Next(0, lst.Count))
End Function
    你可以试试这个,这是一个从列表中选择每个项目的简单循环,但是以随机方式:
Dim Rand As New Random
For C = 0 to LIST.Count - 1 'Replace LIST with the collection name
    Dim RandomItem As STRING = LIST(Rand.Next(0, LIST.Count - 1)) 'Change the item type if needed (STRING)
    '' YOUR CODE HERE TO USE THE VARIABLE NewItem ''
Next