Wenn die internen Umwandlungsmechanismen immer funktionieren, könnte das auch so gehen:
Delphi-Quellcode:
for Li := 0 to Length(LArr) - 1 do begin
TArrayHelper.Add<T>(Result, TValue.From(Larr[Li]).AsType<T>);
end;
Eventuell würde ich hier aber eine TList<T> vorziehen:
Delphi-Quellcode:
list := TList<T>.Create;
try
for Li := 0 to Length(LArr) - 1 do begin
list.Add(TValue.From(Larr[Li]).AsType<T>);
end;
Result := list.ToArray;
finally
list.Free;
end;