gpt4 book ai didi

dictionary - 使用 Delphi TDictionary 将字符串用作 case 语句的索引

转载 作者:行者123 更新时间:2023-12-02 07:49:26 25 4
gpt4 key购买 nike

是否可以使用这样的 TDictionarycase 语句?

这只是一个想法,不确定是否有效。

(不是实际的 Delphi 代码)

mydic : tdictionary<string,smallint>
mydic := tdictionary<string,smallint>.create;
mydic.add('A option',1);
mydic.add('B option',2);
mydic.add('C option',3);

case someintegervariable of
mydic('A option'): Begin
//do stuff like case 1:
end;

mydic('B option'): Begin
//do stuff like case 2:
end;

mydic('C option'): Begin
//do stuff like case 3:
end;
end;

最佳答案

不,您不能在 Delphi 中执行此操作。 case statements需要为正在处理的每个值提供一个编译时数字常量。

对于您所要求的内容,您必须:

  • 使用if-else语句:
var
mydic : TDictionary<string, smallint>;
begin
mydic := TDictionary<string, smallint>.Create;
mydic.Add('A option', 1);
mydic.Add('B option', 2);
mydic.Add('C option', 3);

if someintegervariable = mydic['A option'] then
begin
// do stuff for case 1 ...
end
else if someintegervariable = mydic['B option'] then
begin
// do stuff for case 2 ...
end
else if someintegervariable = mydic['C option'] then
begin
// do stuff for case 3 ...
end;

mydic.Free;
end;
  • 枚举字典:
var
mydic : TDictionary<string, smallint>;
mypair: TPair<string, smallint>;
begin
mydic := TDictionary<string, smallint>.Create;
mydic.Add('A option', 1);
mydic.Add('B option', 2);
mydic.Add('C option', 3);

for mypair in mydic do
begin
if mypair.Value = someintegervariable then
begin
if mypair.Key = 'A option' then
begin
// do stuff for case 1 ...
end
else if mypair.Key = 'B option' then
begin
// do stuff for case 2 ...
end
else if mypair.Key = 'C option' then
begin
// do stuff for case 3 ...
end;
Break;
end;
end;

mydic.Free;
end;

关于dictionary - 使用 Delphi TDictionary 将字符串用作 case 语句的索引,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58294030/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com