创建Palindrome程序时出现逻辑错误

mss*_*.in 3 c#

我试图让Palindrome程序尽可能小.但是,该程序给出了逻辑错误.当我输入回文字符串时,它会给出"假",这与预期相反.

char[] phrase;
Console.WriteLine((phrase = Console.ReadLine().ToArray())==phrase.Reverse().ToArray());
Console.ReadLine();
Run Code Online (Sandbox Code Playgroud)

我不想增加这个程序的语句数量.

usr*_*usr 5

在.NET中,数组没有重载的相等运算符.使用Enumerable.SequenceEquals.

更彻底地阅读您的代码,您将使事情变得更加复杂.

    string phrase = Console.ReadLine();
    var reversedPhrase = phrase.Reverse(); //Type is IEnumerable<char>
    Console.WriteLine(phrase.SequenceEquals(reversedPhrase));
Run Code Online (Sandbox Code Playgroud)

我建议你不要像你那样在表达式中埋藏副作用.该代码很可能是一个测试问题,看看学生是否可以解决它.