我在这里的代码中得到了一个我不理解的异常:
Dim folderList As List(Of String) = _folderList
For Each folder In folderList
destinationFolder = destinationFolder + "/" + folderName
localFilePath = lbl_folderPath.Text + "/" + folder
alterFolderList(localFilePath)
...
Next
我有一个全局变量_folderList
,我将其复制到另一个变量folderList
,如我代码的第一行所示。调用最后一个方法(alterFolderList
)时,它会更改变量_folderList
。在调试时,当我第一次到达for each
的末尾时(在Next
),我得到了修改集合的异常,当它实际上不是因为调用的方法没有更改。在调试时,在调用方法之后,我将鼠标悬停在变量folderList
之上,我看到它已更改,现在与_folderList
相同但不应该因为变量folderList
等于到_folderList
枚举之外的For Each
。
这是怎么发生的?以及如何解决这个问题?
答案 0 :(得分:2)
要复制列表,您无法指定它。你应该复制元素。试试这个。
Dim folderList As New List(Of String)
folderList.AddRange(_folderList)