VB 2010中的ArrayList - 我的代码出了什么问题?

时间:2013-09-03 17:35:22

标签: vb.net arraylist

我只是想知道是否有人可以指出我的代码出错了。我正在使用名为Nouns的ArrayList,并且有代码将从ArrayList中挑选的单词添加到名为ArrayList的另一个NewArray()

问题是,当从label_click事件调用Sub时,它不会将存储在NewArray中的单词保存在代码NewArray.Add(WordChosen)中。我通过使用断点和步进来调试它。

这部分的代码在这里:

Sub GetNoun()

    Dim Nouns As ArrayList = New ArrayList(16)
    Nouns.Add("France")
    Nouns.Add("Bird")
    Nouns.Add("Doctor")
    Nouns.Add("City")
    ...

    Dim lblArray As Label() = {lblOne, lblTwo, lblThree, lblFour}

Start:
    Dim WordChosen As String
    WordChosen = Nouns(Random.Next(16))

    If NewArray.Contains(WordChosen) Then
        GoTo Start
    Else
        Dim LabelChosen As Label
        LabelChosen = lblArray(Random.Next(4))
        LabelChosen.Text = WordChosen
        Nouns.Remove(WordChosen)
        NewArray.Add(WordChosen)
    End If
End Sub

如何在动态ArrayList中保留单词?我希望这是有道理的,不是重复的,但我坚持不懈。

1 个答案:

答案 0 :(得分:2)

您的列表是本地变量。

每次调用该函数时,都会得到一个新的变量。

您应该将其移动到类中以创建单个字段,并在构造函数中初始化它。