我相信这是一个简单的问题,但我无法使它运行:
var
FMyList: TList<String>;
begin
FMyList := TList<String>.Create(?????);
end;
如何替换掉 ????? 以插入以下三个字符串:
谢谢。'one'
'two'
'three'
我相信这是一个简单的问题,但我无法使它运行:
var
FMyList: TList<String>;
begin
FMyList := TList<String>.Create(?????);
end;
谢谢。'one'
'two'
'three'
不是一句话,而是两句话:
FMyList := TList<String>.Create;
FMyList.AddRange(['one', 'two', 'three']);
编辑:当然你可以将它与David的方法结合使用。
没有一种单一的方法来完成这个任务。您可以编写自己的构造函数来实现此操作,如下所示:
constructor TMyList<T>.Create(const Values: array of T);
var
Value: T;
begin
inherited Create;
for Value in Values do
Add(Value);
end;
然后你可以写:
FList := TMyList<string>.Create(['one', 'two', 'three']);
更新
正如Uwe在他的答案中正确指出的那样,我展示的代码应该使用AddRange()
方法:
constructor TMyList<T>.Create(const Values: array of T);
begin
inherited Create;
AddRange(Values);
end;