我相信這是一個簡單的問題,但我不能讓它運行:如何使用Delphi一步初始化TList <T>?
var
FMyList: TList<String>;
begin
FMyList := TList<String>.Create(?????);
end;
如何插入而不是?????要插入此3個字符串:
'一'
'二'
'三化'
謝謝..
我相信這是一個簡單的問題,但我不能讓它運行:如何使用Delphi一步初始化TList <T>?
var
FMyList: TList<String>;
begin
FMyList := TList<String>.Create(?????);
end;
如何插入而不是?????要插入此3個字符串:
'一'
'二'
'三化'
謝謝..
還有就是要做到這一點沒有任何單一的方法。你可以寫你自己的構造這樣做,因爲這樣:
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']);
更新
由於烏韋正確地在他的回答中指出,我出示的代碼應該使用AddRange()
方法:
constructor TMyList<T>.Create(const Values: array of T);
begin
inherited Create;
AddRange(Values);
end;
不是一個襯墊,但兩個班輪:
FMyList := TList<String>.Create;
FMyList.AddRange(['one', 'two', 'three']);
編輯:當然,你可以與大衛的做法結合起來。
+ 1我對AddRange並不熟悉,謝謝指出它 – 2011-04-24 16:24:51
感謝Uwe,我想我不能向大衛和你發佈'接受的答案',兩者都是很好的答案 再次感謝 – ferpega 2011-04-25 08:27:55
我認爲兩條線是比這裏的一行更好,我對構造函數的副作用感到痛惜 – 2011-04-25 22:29:39
創建列表,然後使用FMyList.Add插入。 – Kaitnieks 2011-04-24 11:58:26
是的,我現在正在這樣做,但我想一步到位。 – ferpega 2011-04-24 12:05:49