新版本的变更 / Delphi XE7

// *** before: ***
// joining two dynamic arrays was written by hand: measure, resize, copy
var
  A, B, C: TArray<Integer>;
  I: Integer;
begin
  SetLength(C, Length(A) + Length(B));
  for I := 0 to High(A) do
    C[I] := A[I];
  for I := 0 to High(B) do
    C[Length(A) + I] := B[I];
end;

// *** in version XE7: ***
var
  A, B, C: TArray<Integer>;
begin
  A := [123];
  B := [45];

  C := A + B;          // 1 2 3 4 5
  C := C + [6];        // an array constant on the right
  C := C + C;          // and the array with itself

  Writeln(Length(C));
end;