Reputation: 4412
I'm getting an exception which I don't understand in this bit of code here:
Dim folderList As List(Of String) = _folderList
For Each folder In folderList
destinationFolder = destinationFolder + "/" + folderName
localFilePath = lbl_folderPath.Text + "/" + folder
alterFolderList(localFilePath)
...
Next
I've got a global variable _folderList
which I copy to another variable, folderList
, as seen in the first line of my code. When the last method (alterFolderList
) is called, it alters the variable _folderList
. When debugging, as I reach the end of the for each
for the first time (at Next
) I get the exception that the collection was modified, when it actually wasn't because the method called doesn't change it. When debugging, after the method is called, I hover above the variable folderList
and I see it changed and is now the same as _folderList
but it shouldn't because the variable folderList
is equaled to _folderList
outside the For Each
enumeration.
How does this happen? And how to work around this?
Upvotes: 0
Views: 70
Reputation: 57002
To copy the list you cannot assign it. You should copy the elements. Try this.
Dim folderList As New List(Of String)
folderList.AddRange(_folderList)
Upvotes: 2