首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何声明TDictionary枚举数?

如何声明TDictionary枚举数?
EN

Stack Overflow用户
提问于 2008-11-28 18:58:00
回答 1查看 4.2K关注 0票数 4

我有一个TDictionary,它存储一堆按名称索引的对象,我希望能够检查所有的对象。所以我试了一下:

代码语言:javascript
复制
var enumerator: TMyObject;
begin
   for enumerator in myDictionary do

但那是无法编译的。“不兼容类型:'TMyObject‘和'TPair’

所以我尝试了一些不同的方法:

代码语言:javascript
复制
var enumerator: TPair<string, TMyObject>;

也没有编译。此错误消息甚至更奇怪:不兼容类型:“TPair”和“TPair”

所以很明显,我需要一些时髦的语法来枚举我的字典,用来表示。在循环中。有人知道怎么正确申报吗?

编辑: Fabio给出了一个正常工作的示例,但是我的代码仍然没有使用他的方法进行编译。也许是因为我在另一个单位工作?字典和它用于值端的类都是在一个单元中定义的,这段代码位于其他地方。这会使它成为编译器中的一个bug吗?有人能证实这一点吗?

编辑2:发现问题。http://qc.embarcadero.com/wc/qcmain.aspx?d=69461如果有人感兴趣的话。

EN

回答 1

Stack Overflow用户

发布于 2008-11-28 19:53:27

这就像预期的那样:

代码语言:javascript
复制
var
  Enum: TPair<string, TForm>;
  MyDict: TDictionary<string, TForm>;
begin
  MyDict := TDictionary<string, TForm>.Create;
  try
    MyDict.Add('Form1', Self);
    for Enum in MyDict do
      ShowMessage(Enum.Key);
  finally
    MyDict.Free;
  end;

将此代码粘贴到任何表单的FormCreate事件中,然后自己查看。

票数 7
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/326444

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档