arrays – 默认值创建一个TDictionary的常量数组

arrays – 默认值创建一个TDictionary的常量数组,第1张

概述我想在Delphi项目中使用TDictionary.但我有一个问题,我怎么能默认值创建一个常量的TDictionary数组? 例如,我想为字典分配4项,如波纹管代码(对于TItem的常量数组): ...type TItem = record _Key: string; _Value: string; end;var Dic: array [0..3]of TItem 我想在Delphi项目中使用TDictionary.但我有一个问题,我怎么能默认值创建一个常量的TDictionary数组?

例如,我想为字典分配4项,如波纹管代码(对于TItem的常量数组):

...type  TItem = record    _Key: string;    _Value: string;  end;var  Dic: array [0..3]of TItem=(  (_Key:'A' ; _Value:'Apple'),(_Key:'B' ; _Value:'Book'),(_Key:'C' ; _Value:'C++'),(_Key:'D' ; _Value:'Delphi')  );...

有没有办法用TDictionary做这个工作?
我想创建一个Dic(但)的常量数组,如波纹管结构.

...    var      Dic: TDictionary<string,string>;    begin      Dic := TDictionary<string,string>.Create;      try        Dic.Add('A','Apple');        Dic.Add('B','Book');        Dic.Add('C','C++');        Dic.Add('D','Delphi');      finally         ///      end;    ...

有人对我有什么建议吗?
(对不起,如果我的英语很差!)

解决方法 您不能编写作为类实例的常量表达式.

但是,由于你的TDictionary是String的集合,你可以用它创建常量,你可以在运行时从你的常量构建你的TDictionary.您可以在问题中使用记录,但我喜欢数组:

{$IFDEF WHATEVER}type  TDictConstant = array[0..3,0..1] of String;const  DICT_CONSTANT: TDictConstant = (('A','Apple'),('B','Book'),('C','C++'),('D','Delphi'));{$ELSE}// If you want it "blank" for one configtype  TDictConstant = array[0..0,0..1] of String;const  DICT_CONSTANT: TDictConstant = (('',''));{$ENDIF}var  Dic: TDictionary<string,string>;procedure TForm1.FormCreate(Sender: TObject);var  i: Integer;begin  Dic := TDictionary<string,string>.Create;  for i := 0 to High(DICT_CONSTANT) do  begin    // Ignore the "blank" ones    if (DICT_CONSTANT[i][0] <> '') or (DICT_CONSTANT[i][1] <> '') then    begin      Dic.Add(DICT_CONSTANT[i][0],DICT_CONSTANT[i][1]);    end;  end;end;

我过去做过类似的事情.

总结

以上是内存溢出为你收集整理的arrays – 默认值创建一个TDictionary的常量数组全部内容,希望文章能够帮你解决arrays – 默认值创建一个TDictionary的常量数组所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/langs/1272955.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-06-08
下一篇 2022-06-08

发表评论

登录后才能评论

评论列表(0条)

保存