检查数组是否相等

数组和集合 / 数组

function ArraysEqual(
  const A, B: TArray<Integer>): Boolean;
var
  I: Integer;
begin
  Result := Length(A) = Length(B);
  if Result then
    for I := 0 to High(A) do
      if A[I] <> B[I] then
        Exit(False);
end;

var
  N1, N2, N3: TArray<Integer>;
  Equal1, Equal2: Boolean;
begin
  N1 := [1, 2, 3];
  N2 := [1, 2, 3];
  N3 := [3, 2, 1];

  //"=" compares references, not content
  Equal1 := ArraysEqual(N1, N2);
  //equal1 is True

  Equal2 := ArraysEqual(N1, N3);
  //equal2 is False

  WriteLn('equal1 is ', Equal1);
  WriteLn('equal2 is ', Equal2);
end.