我有一个 TDictionary 存储一堆按名称索引的对象,我希望能够检查所有对象。所以我尝试了这个:
var enumerator: TMyObject;
begin
for enumerator in myDictionary do
但这不会编译。“不兼容的类型:‘TMyObject’和‘TPair’
所以我尝试了一些不同的方法:
var enumerator: TPair<string, TMyObject>;
那也没有编译。这个错误信息更奇怪:不兼容的类型:'TPair'和'TPair'
所以显然我需要某种时髦的语法来用for .. in循环枚举我的字典。有人知道如何正确申报吗?
编辑:Fabio Gomes 给出了一个可以正常工作的示例,但我的代码仍然无法使用他的方法进行编译。也许是因为我在不同的单位工作?字典和它用于 Value 端的类都定义在一个单元中,而这段代码在别处。这是否使它成为编译器中的错误?任何人都可以验证这一点吗?
编辑2:发现问题。 http://qc.embarcadero.com/wc/qcmain.aspx?d=69461如果有人感兴趣的话。