【问题标题】:What is wrong with my code? (VB)我的代码有什么问题? (五)
【发布时间】:2012-01-27 01:03:44
【问题描述】:
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 文件中获取单词,然后将它们放入标签中,唯一的问题是;这些话有时会重复。我只希望每个单词出现一次,而是出现多次。

【问题讨论】:

    标签: vb.net arrays string random label


    【解决方案1】:

    一旦检索到,就从数组中删除单词以避免重复,我会使用 List 而不是数组来做到这一点,祝你好运!

    【讨论】:

      【解决方案2】:

      每次检查随机单词时,您都会使用整个单词数组。我对random.Next()的理解并不是每次调用它都使用从0-n不同的随机数,而是从0-n生成一个新的数,可能在n次发生之前重复。

      要解决此问题,请在每次使用单词时调整数组 - 将找到的单词移到末尾并调整 range-1。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2015-03-11
        • 1970-01-01
        • 2011-07-28
        相关资源
        最近更新 更多