这可能是一个非常简单的问题,但我认为我是精神盲或什么的;我如何通过 Delphi (10.1) 中的字典类中的索引获取键。我的意思是该结构有一个名为 Count 的属性,所以它必须有某种数组或列表,为什么我不能通过索引获取键。
我还在 Dictionary 类中尝试了 KeyCollection 属性,但它也没有任何用处。我需要这样的东西:
key: string;
key := dicTest.GetKey(keyIndex);
非常感谢。
最佳答案
Delphi RTL 通用字典是无序的。由于无序,容器中的项目没有有意义的索引。
可以使用 Keys
属性枚举键:
var
dict: TDictionary<string, Integer>;
key: string;
....
for key in dict.Keys do
Writeln(key);
同样,可以使用 Values
属性枚举值。
var
dict: TDictionary<string, Integer>;
value: Integer;
....
for value in dict.Values do
Writeln(value);
如果您想枚举键/值对,那么字典本身会为此提供一个枚举器:
var
dict: TDictionary<string, Integer>;
item: TPair<string, Integer>;
....
for item in dict do
Writeln(item.Key, ', ', item.Value);
请注意,对于这些枚举器中的每一个,都不能保证项目的顺序。向字典中添加新项等简单操作可能会导致枚举项的顺序发生变化。
关于delphi - 通用字典类是否有通过索引获取键的方法?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47572176/