ForEach内でコレクションの値を変更すると、以下のエラーが発生します。
「コレクションが変更されました。列挙操作は実行されない可能性があります。」
エラーが発生する例
Dim dic As New Dictionary(Of String, Integer)
dic.Add("a", 1)
dic.Add("b", 2)
dic.Add("c", 3)
For Each itm As KeyValuePair(Of String, Integer) In dic
dic(itm.Key) = 0
Next
キーのリストを作成し、ForEachする例
Dim dic As New Dictionary(Of String, Integer)
dic.Add("a", 1)
dic.Add("b", 2)
dic.Add("c", 3)
'キーのリストを作成し、ForEachする
Dim list As New List(Of String)(dic.Keys)
For Each strKey As String In list
dic(strKey) = 0
Next