我有一个 TDictionary 并向其中添加了一些项目:
for index := 0 to 10 do
dict.Add(IntToStr(index), index);
现在,我需要迭代容器并删除我想要的项目:
pairEnum := dict.GetEnumerator;
while pairEnum.MoveNext do
begin
if pairEnum.Current.Value mod 2 = 0 then
dict.Remove(pairEunm.Current.Key);
end;
我希望我现在字典中只有奇数。但我实际得到的是:
key=1 value=1
key=3 value=3
key=5 value=5
key=7 value=7
key=9 value=9
key=8 value=8 <-
为什么“8”没有从字典中删除?
如果我添加更多项目。例如
for index := 0 to 12 do
dict.Add(IntToStr(index), index);
那么,结果是正确的。这是为什么?如何正确迭代 TDictionary 并删除项目?谢谢。