假设在Dictionary
方法的For Each
循环中对某些Keys
进行了修改(添加了元素),有没有办法确保该循环捕获所有元素?
使用代码可能更容易解释:
Sub DictionaryKeysCollectionTest()
Dim a As Dictionary
Set a = New Dictionary
a.Add "b", 1
a.Add "c", 2
For Each k In a.Keys()
Debug.Print "Key: " & k
If k = "c" Then
Debug.Print "1st count: " & a.Count
a.Add "a", 0
Debug.Print "2nd count: " & a.Count
End If
Next k
End Sub
这将输出:
Key: b
Key: c
1st count: 2
2nd count: 3
我们最终可以看到a
被添加到字典中(我们看到.Count
有所增加),但是循环没有抓住它(我们看不到任何{{ 1}}。我猜是因为我们在a
存在之前先遍历了字典的那一部分。
是否可以在执行仍在该循环内时“重新计算” a
部分,以便我也可以捕获键.Keys()
?
答案 0 :(得分:0)
从评论看来,答案是否。
编辑:忽略错误的陈述。