delphi 遍历TDictionary
时间: 2024-09-29 15:10:19 浏览: 28
在Delphi中,`TDictionary`是一种关联数组,它存储键值对。遍历`TDictionary`通常有两种方式:
1. **迭代器(Iterator)**:
使用内置的`Items`属性,你可以获得一个`ITupleIterator`类型的迭代器,它可以让你逐个访问键值对。例如:
```delphi
var
MyDict: TDictionary<String, Integer>;
begin
for Item in MyDict.Items do
Writeln('Key: ', Item.Key, ' Value: ', Item.Value);
end;
```
2. **直接访问(Direct Access)**:
如果你知道键,可以直接通过索引来获取对应的值,如`MyDict[Key]`。但这不是严格意义上的遍历,因为没有顺序。
如果你想按照添加顺序遍历,`TDictionary`本身并不保证这样的顺序,但如果它是基于特定排序算法实现的,比如`TOrdinalDictionary`,则可能会有一定的顺序。不过,如果你需要稳定的插入顺序遍历,可以考虑使用`TObjectList`作为内部数据结构的变种。
相关问题
举例说明delphi中的TDictionary的用法
TDictionary是Delphi中的一个类,它实现了一个键值对的映射关系。以下是一个简单的例子,说明如何使用TDictionary类:
首先,我们需要在uses中加入Generics.Collections单元,以便使用TDictionary类。
```delphi
uses
Generics.Collections;
```
然后,我们可以声明一个TDictionary对象:
```delphi
var
dict: TDictionary<string, Integer>;
```
这个TDictionary对象将存储一个字符串类型的键和一个整数类型的值。
接下来,我们可以创建一个TDictionary对象并添加一些键值对:
```delphi
dict := TDictionary<string, Integer>.Create;
dict.Add('apple', 1);
dict.Add('banana', 2);
dict.Add('orange', 3);
```
现在,我们可以使用字典来获取值:
```delphi
var
value: Integer;
begin
if dict.TryGetValue('apple', value) then
ShowMessage(IntToStr(value));
end;
```
这将显示键'apple'对应的值1。
我们还可以遍历所有键值对:
```delphi
var
pair: TPair<string, Integer>;
begin
for pair in dict do
ShowMessage(pair.Key + ': ' + IntToStr(pair.Value));
end;
```
这将显示所有键值对。