如何用反向方法创建回文

How to create Palindrome with Reverse method

我正在学习 C#,但我只是在完成一些创建 Palindrome 函数的简单任务。我决定将字符串更改为字符数组,然后使用反向方法并将初始字符数组与反向数组进行比较。但是在 if 语句中使用 reverse 方法似乎不起作用,或者我在其他地方弄错了??

void IsPalindrome(string x)
{
    bool isEqual = true;

    char[] charArr = x.ToCharArray();
    char[] reversed = charArr;


    Array.Reverse(reversed);
    for (int i = 0; i < reversed.Length; i++)
    {

        if (reversed[i] != charArr[i])
        {
            isEqual = false;
        }
    }

    if (isEqual == true)
    {
        Console.WriteLine($"True, {x.Length}");
    }
    else
    {
        Console.WriteLine($"False, {x.Length}");
    }
  
}

Console.WriteLine("Type a string:");
string? userString = Console.ReadLine();

IsPalindrome(userString);

charArr 和 reversed 指向内存中的相同地址。试试这个:

void IsPalindrome(string x)
{
    bool isEqual = true;

    char[] reversed = x.ToCharArray();

    Array.Reverse(reversed);
    for (int i = 0; i < reversed.Length; i++)
    {

        if (reversed[i] != x[i])
        {
            isEqual = false;
        }
    }

    if (isEqual == true)
    {
        Console.WriteLine($"True, {x.Length}");
    }
    else
    {
        Console.WriteLine($"False, {x.Length}");
    }
  
}

Console.WriteLine("Type a string:");
string? userString = Console.ReadLine();

IsPalindrome(userString);