A1G*_*ard 8 arrays delphi key associative delphi-xe3
如果您使用php,您可以在编程语言中看到php具有关联数组(或数组宽度字符串键).例如:
$server['hostname'] = 'localhost';
$server['database'] = 'test';
$server['username'] = 'root';
$server['password'] = 'password' ;
// 2d array
$all['myserver']['hostname'] = 'localhost' ;
Run Code Online (Sandbox Code Playgroud)
但是在delphi中找不到任何默认的使用关联数组的方法.
首先,我希望找到任何输出组件或类的默认方式.第二,如果真的我无法用内部方式找到我强制只选择输出类.
我使用Delphi XE3,非常感谢您的帮助.
编辑:我在这里找到了一个类:http://www.delphipages.com/forum/showthread.php?t=26334
与php相同,但有更好的方法吗?
Dav*_*nan 18
您可以TDictionary<string,string>
从Generics.Collections
单位使用.
var
Dict: TDictionary<string,string>;
myValue: string;
....
Dict := TDictionary<string,string>.Create;
try
Dict.Add('hostname', 'localhost');
Dict.Add('database', 'test');
//etc.
myValue := Dict['hostname'];
finally
Dict.Free;
end;
Run Code Online (Sandbox Code Playgroud)
等等等等.
如果你想要一个包含字典的字典,你可以使用TDictionary<string, TDictionary<string,string>>
.
但是,当您这样做时,您需要特别注意外部字典中包含的字典项的生命周期.您可以使用它TObjectDictionary<K,V>
来帮助管理它.您可以像这样创建以下对象之一:
TObjectDictionary<string, TDictionary<string,string>>.Create([doOwnsValues]);
Run Code Online (Sandbox Code Playgroud)
此TObjectDictionary<k,V>
操作同样是作为一个传统TObjectList
与OwnsObjects
设置为True
.
小智 11
您可以使用tStrings和tStringList来实现此目的,但是2d数组不在这些组件的范围内.
用法;
var
names : TStrings;
begin
...
names := TStringList.Create;
...
...
names.values['ABC'] := 'VALUE of ABC' ;
...
...
end ;
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
14437 次 |
最近记录: |