从列表中选择任意随机字符串

时间:2013-02-25 14:51:22

标签: vb.net visual-studio-2010 vb.net-2010

如何从给定的字符串列表中选择任何随机字符串?例如:

List1: banana, apple, pineapple, mango, dragon-fruit
List2: 10.2.0.212, 10.4.0.221, 10.2.0.223

当我调用像 randomize(List1)= somevar 这样的函数时,它只会从该特定列表中获取任何字符串。 somevar 的结果将是完全随机的。怎么做到呢?非常感谢你:))

5 个答案:

答案 0 :(得分:6)

使用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

答案 1 :(得分:2)

创建List of Strings
创建一个随机数生成器:Random class
使用NextInt()作为上限调用随机数生成器的List.Count方法 返回List[NextInt(List.count)]
完成工作:))

答案 2 :(得分:1)

生成1到列表大小的随机数,并将其用作索引?

答案 3 :(得分: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

答案 4 :(得分:1)

你可以尝试这个,这是一个简单的循环来从列表中选择每个项目,但是以随机的方式:

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