c# - 创建回文程序时出现逻辑错误

标签 c#

我试图让 Palindrome 程序尽可能小。然而,这个程序给出了逻辑错误。当我输入回文字符串时,它给出的结果是“False”,这与预期相反。

char[] phrase;
Console.WriteLine((phrase = Console.ReadLine().ToArray())==phrase.Reverse().ToArray());
Console.ReadLine();

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

最佳答案

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

更彻底地阅读您的代码,您正在使事情变得比必要的更复杂。

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

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

关于c# - 创建回文程序时出现逻辑错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24164052/

相关文章:

java - 在 Camera2 api 上使用 captureBurst 时 JPEG 回调超时

c# - 使用 ASP.NET 5 ( MVC 6 ) 的 N 层架构

c# - Entity Framework Core 通过 SSH 隧道连接到 MSSQL 数据库

c# - 由于内存不足异常,函数评估被禁用

c# - 使用 Entity Framework 从数据库中检索数据

c# - 在 MVC 4 中选择表的所有 tr 并使用复选框将其发送到 Controller

c# - 插入文件路径

c# - 在表单加载时停止 MdiChild 表单在父容器内漫游

c# - 解析器生成器 : How to use GPLEX and GPPG together?

c# - 使用匿名类型代替字典的缺点?