2

我正在用 VB 编写一个程序,我需要制作一个列表列表(我已经想出了如何做到这一点)。问题是,外部列表将需要不同数量的元素,具体取决于程序中其他地方的其他变量。

我已经循环了这段代码:

    Dim rep As Long = 1023
    Dim items As List(Of String)
    items.Add("First Entry")
    items.Add("Second Entry")
    items.Add("Third Entry")
    items.Add("Fourth Entry")

    '(sake of argument, these are the variables
    'that will be changing vastly earlier
    'in the program, I put them in this way to simplify
    'this part of my code and still have it work)

    Dim myList As New List(Of List(Of String))
    Dim tempList As New List(Of String)

    For index = 1 To Len(rep.ToString)
        tempList.Add(items(CInt(Mid(rep.ToString, index, 1))))
    Next

    myList.Add(tempList)
    tempList.Clear()

我的问题是最后一部分;每次我把tempList添加到myList中都可以,但是当我清除tempList时,它也会清除myList中tempList的版本。

myList 的计数为 1,但在我清除 tempList 后,其中的列表计数为 0。而且我必须清除 tempList,因为我一遍又一遍地循环这部分代码,次数不定。

有没有解决的办法?我是一个可怕的菜鸟吗?

4

1 回答 1

2

tempList每次都使用相同的,而不是制作一个新的。

您可能需要执行以下操作:

myList.Add(tempList)
tempList = new List(Of String) ' Create a new List(Of T), don't reuse...
于 2013-04-13T00:59:13.050 回答