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