检查矩阵行是否为回文(数组中的数组)

To check if matrix row is an palindrome (array in array)

任务是我需要检查数组(二维数组)中的数组是否是回文 问题是我在第 40 行遇到“超出范围”异常,无法弄清楚如何告诉计算机在那里进行正确的计算:if (arr[i, j] != arr[arr.GetLength(1) - i, j - 1])

我需要为二维数组解释 if (arr[i] != arr[n - i - 1])。 到目前为止,这是我的代码:```

class Program
    {
        static void Main(string[] args)
        {

            Random rnd = new Random();
            int n;
            n = Convert.ToInt32(Console.ReadLine());
            int[,] arr = new int[n, n];


            
            for (int i = 0; i < arr.GetLength(0); i++)
            {
                for(int j = 0; j < arr.GetLength(1); j++)
                {
                    arr[i, j] = rnd.Next(1, 15);
                }
            }

            for (int i = 0; i < arr.GetLength(0); i++)
            {
                for (int j = 0; j < arr.GetLength(1); j++)
                {
                    Console.WriteLine(arr[i, j]);
                }
            }


            int flag = 0;
            for (int i = 0; i < arr.GetLength(0); i++)
            {

                for (int j = 0; j <= arr.GetLength(1) / 2 && n != 0; j++)
                {
                    if (arr[i, j] != arr[arr.GetLength(1) - i, j - 1])
                    {
                        Console.WriteLine(i);
                        flag = 1;
                        break;
                    }

                }
            }
            if (flag == 1)
            {
                Console.WriteLine("pali");
            }
            else
            {
                Console.WriteLine("not pali");
            }
        }
    }

正在寻找这样的东西吗?

namespace ConsoleApp
{
    class Program
    {
        static void Main(string[] args)
        {
            int[,] arr = new int[,]
            {
                { 1, 2, 3, 4, 5, 6 },
                { 1, 2, 3, 4, 5, 6 },
                { 1, 2, 3, 3, 2, 1 },      // Palindrome
                { 1, 2, 3, 4, 5, 6 },
                { 1, 2, 3, 4, 5, 6 }
            };
            PrintArray(arr);
            CheckForPalindrome(arr);
        }

        static void PrintArray(int[,] arr)
        {
            for (int i = 0; i < arr.GetLength(0); i++)
            {
                for (int j = 0; j < arr.GetLength(1); j++)
                {
                    Console.Write($"{arr[i, j]} ");
                }
                Console.WriteLine();
            }
        }

        static void CheckForPalindrome(int[,] arr)
        {
            for (int i = 0; i < arr.GetLength(0); i++)
            {
                var equals = true;
                for (int j = 0; j < arr.GetLength(1) / 2; j++)
                {
                    equals = arr[i, j] == arr[i, arr.GetLength(1) - j - 1];
                    if (equals == false)
                        break;
                }
                if (equals == true)
                    Console.WriteLine($"Row {i + 1} is palindrome");
            }
        }
    }
}