如何在 Delphi 中不使用迭代语句(forwhile 循环)将一个数组 append 到另​​一个相同类型的数组?

最佳答案

有两个 dynamic arrays arr1arr2

var
  arr1, arr2: array of Integer;
. . .
SetLength(arr1, 3);
arr1[0] := 1;
arr1[1] := 2;
arr1[2] := 3;

SetLength(arr2, 3);
arr2[0] := 4;
arr2[1] := 5;
arr2[2] := 6;

您可以像这样将第一个 append 到第二个:
SetLength(arr2, Length(arr2) + Length(arr1));
Move(arr1[0], arr2[3], Length(arr1) * SizeOf(Integer));

System.Move

正如 Uwe Raabe's comment 指出的那样,您可以对托管类型执行以下操作:
SetLength(arr2, Length(arr2) + Length(arr1));
for i := Low(arr1) to High(arr1) do
  arr2[3+i] := arr1[i];

关于arrays - 如何在 Delphi 中将一个数组 append 到另​​一个相同类型的数组?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/35406753/

10-13 02:40