Array.Equals
- проверка личности (ссылаются ли они на один и тот же объект). Это всегда будет false
для ваших массивов, поскольку они являются разными объектами:
using System;
namespace Test
{
public class Program
{
public static void Main(string[] args)
{
var nums1 = new int[] { 1, 2, 3 };
var nums2 = new int[] { 1, 2, 3 };
var nums1ref = nums1;
Console.WriteLine(nums1.Equals(nums2)); // False
Console.WriteLine(nums1.Equals(nums1ref)); // True
}
}
}
Вы можете найти примеры того, как проверить равенство содержимого массива здесь .
Кроме того, если у вас есть правильный тест на равенство, вы, вероятно, не хотите использовать &&
(и), а вместо этого использовать ||
(или) в своих проверках - вам, скорее всего, все равно, если какой-либо содержимого массива изменилось, за исключением того, что все из них изменились сразу.