如何随机选择字符串vb.net

时间:2016-07-13 17:34:47

标签: vb.net string

是否有一个简单的解决方案来选择vb.net中的随机字符串?我有一个大约二十个段落的列表,其中三个需要相互追逐,我希望它是随机的。我必须创建一个变量吗?或者是否有可以通过点击按钮运行的命令?

3 个答案:

答案 0 :(得分:2)

如果你有一个正常的列表,这应该工作: 如果没有,请写下你的名单。

    Dim rn As New Random
    Dim selct As String = lst(rn.Next(0, lst.Count - 1))

selct是输出。

lst替换为您的列表名称。

答案 1 :(得分:1)

实现此目的的一种(相当简单的方法)是拥有要使用的段落的集合,然后使用Nuget包中的PeanutButter.RandomValueGen PeanutButter.RandomGeneratorsit's open-source too

RandomValueGen.GetRandomFrom获取任何内容的集合,并从集合中返回一个随机项。作为奖励,您可以指定一个不要选择的值的参数列表,这样您就可以确保不重复您的段落。

虽然库是用C#编写的,但它显然可以在任何.NET项目中使用。如果您有兴趣,RandomValueGen上还有很多其他生成器方法。

完全披露:我是作者。

答案 2 :(得分:0)

如果您不想要依赖或需要因某些奇怪的原因或原因X而留在4.0上,您可以随时尝试这样做

Private rnd As New Random
Public Function GetRandom(input As IEnumerable(Of String), itemToGet As Integer) As List(Of String)
    If input.Count < itemToGet Then
        Throw New Exception("List is too small")
    End If

    Dim copy = input.ToList

    Dim result As New List(Of String)
    Dim item As Integer

    While itemToGet > 0
        item = rnd.Next(0, copy.Count)
        result.Add(copy(item))
        copy.RemoveAt(item)

        itemToGet -= 1
    End While

    Return result
End Function