Обобщённая проверка массивов на равенство

Материал из Вики ИТ мехмата ЮФУ
Перейти к: навигация, поиск
/// <summary>
/// Проверяет массивы a, b на равенство и возвращает
/// истину, если они равны
/// </summary>
/// <param name="a">Первый массив</param>
/// <param name="b">Второй массив</param>
/// <returns>Истину, если содержимое массивов равно</returns>
function ArrsAreEqual<T>(a, b: array of T): boolean; 
begin
  Assert(a <> nil, 'ArrsAreEqual: a <> nil');
  Assert(b <> nil, 'ArrsAreEqual: b <> nil');
  // сравниваем длины
  Result := a.Length = b.Length;
  if Result then
  begin
    // здесь result is true
    var i := 0;
    while (i < a.Length) and (a[i] = b[i]) do
      i += 1;
    if i < a.Length then
      Result := false;
  end;
end;