Dim aryName As String() = Nothing
aryName = File.ReadAllLines(Application.StartupPath & "\Random\fnames.txt")
Dim randomWords As New List(Of String)
For i = 0 To aryName.Length - 1
If randomWords.Contains(aryName(i)) = False Then
randomWords.Add(aryName(i))
End If
Next
Dim random As New Random
Label2.Text = (randomWords(random.Next(0, randomWords.Count - 1)).ToString)
该代码应该从txt文件中获取单词,然后将它们放入标签中,唯一的问题是;这些话有时会重复。我只希望每个单词出现一次,但它们会出现多次。
答案 0 :(得分:2)
每次检查随机单词时,您都在使用整个单词数组。我对random.Next()
的理解并不是每次调用它时都会使用0-n之间的不同随机数,而是从0-n生成一个新数字,这可能会在n次发生之前重复。
要解决此问题,请在每次使用单词时调整数组 - 将找到的单词移动到结尾并调整范围-1。
答案 1 :(得分:1)
一旦检索到从数组中删除单词以避免重复,我会使用List而不是数组来做到这一点,祝你好运!