【编程】Delphi - TDictionary在使用for .. in 时遍历错误问题

语言与语言之间,有的时候真得注意。

 

受某种语言的影响,如下遍历方式:

for index in dic.keys do
begin
    xxx
end;

 

结果发现,字典里有10个对象,为啥只给我删除了8个就出来了? 看不起谁呢?

调试一下发现,还真是删除不干净。

 

BaiDu了一下,没发现可利用的博客。

StackOverflow上有一个解答,《打开方式不对》

for index in dic.keys.ToArray do
begin
    xxx
end;

  

然后就去看了一下keys的返回值,结果是一个泛型类的对象~ 

 

果然,“想当然”了。

 

希望各位在日后编程过程中,不要再踩这样的坑 :D

 

posted @ 2021-07-05 21:33  Hulk458  阅读(904)  评论(0)    收藏  举报