在 Delphi 中,TDictionary 是一个泛型字典类,用于存储键值对。要遍历 TDictionary,你可以使用其内置的枚举器(enumerator)。TDictionary 提供了一个 GetEnumerator 方法,该方法返回一个可以用于遍历字典中所有键值对的枚举器。
以下是一个遍历 TDictionary<TKey, TValue> 的示例:
uses
System.SysUtils, System.Generics.Collections;
procedure TraverseDictionary;
var
Dict: TDictionary<string, Integer>;
Pair: TPair<string, Integer>;
begin
// 创建并初始化字典
Dict := TDictionary<string, Integer>.Create;
try
Dict.Add('One', 1);
Dict.Add('Two', 2);
Dict.Add('Three', 3);
// 使用 for-in 循环和枚举器遍历字典
for Pair in Dict do
begin
WriteLn('Key: ', Pair.Key, ', Value: ', Pair.Value);
end;
finally
// 释放字典
Dict.Free;
end;
end;
begin
TraverseDictionary;
ReadLn; // 暂停以查看输出
end.
在这个示例中,我们首先创建了一个 TDictionary<string, Integer> 实例,并向其中添加了一些键值对。然后,我们使用一个 for-in 循环来遍历字典。在循环中,Pair 变量是一个 TPair<string, Integer> 类型的实例,它表示字典中的一个键值对。通过 Pair.Key 和 Pair.Value,我们可以访问键和值,并将它们输出到控制台。
另外,你也可以直接使用 TDictionary 的 Keys 和 Values 属性来分别获取所有的键和值,并遍历它们:
var
Key: string;
Value: Integer;
begin
// ...(字典的创建和初始化部分与上面相同)
// 遍历所有的键
for Key in Dict.Keys do
begin
WriteLn('Key: ', Key);
end;
// 遍历所有的值
for Value in Dict.Values do
begin
WriteLn('Value: ', Value);
end;
// ...(字典的释放部分与上面相同)
end;
但是,请注意,当你只遍历键或值时,可能会失去键和值之间的关联。因此,在大多数情况下,使用 for-in 循环和 TPair 是更好的选择,因为它同时提供了键和值的信息。
本文来自博客园,作者:del88,转载请注明原文链接:https://www.cnblogs.com/del88/p/18576765
浙公网安备 33010602011771号