When you use a
For Each loop to iterate through a String Array and perform some action with each item, the change doesn't affect the String Array itself. Consider the following code:
Dim strArray() As String = {"First Item", "Second Item", "Third Item"}
' First we are trying to add some more
' text with each item in array
For Each strItem As String In strArray
strItem &= " some data"
Next
' Now again iterate through this array to see
' whether the changes has been made or not
For Each strItem As String In strArray
Debug.Print(strItem)
Next
The output of the above code will be:
First Item
Second Item
Third Item
As you can see in the output, there is no change in items. Each time the value is copied into the variable, it changes the
variable, not the Array item. To make changes in each item, use the
For Next loop. For example:
Dim strArray() As String = {"First Item", "Second Item", "Third Item"}
' First we are trying to add some more ' text with each item in array
For i As Integer = 0 To strArray.Length - 1
strArray(i) &= " some data"
Next
' Now again iterate through this array to see
' whether the changes has been made or not
For Each strItem As String In strArray
Debug.Print(strItem)
Next
The output of the above code will be:
First Item some data
Second Item some data
Third Item some data