Я уверен, что это простой вопрос, но я не могу заставить его работать:
var
FMyList: TList<String>;
begin
FMyList := TList<String>.Create(?????);
end;
Как вставить вместо ????? чтобы вставить эти 3 строки:
'один'
'два'
'три'
Спасибо..
Я уверен, что это простой вопрос, но я не могу заставить его работать:
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']);
Редактировать: Конечно, вы можете комбинировать это с подходом Дэвида.