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 を正しく反復処理して項目を削除するにはどうすればよいですか? ありがとう。