数组和集合 / 数组

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
  N1N2N3TArray<Integer>;
  Equal1, Equal2: Boolean;
begin
  N1 := [123];
  N2 := [123];
  N3 := [321];

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

  Equal2 := ArraysEqual(N1N3);
  //equal2 is False

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