如何在C#单行条件语句中实现字符串的逻辑或比较
可行的单行实现方案
以下几种方法可以在单行内完成判断,且只读取一次用户输入:
忽略大小写比较(推荐,更严谨):
利用StringComparison.OrdinalIgnoreCase忽略大小写,同时用?.处理输入为null的边界情况:if (Console.ReadLine()?.Equals("s", StringComparison.OrdinalIgnoreCase) == true) { // 匹配成功后的逻辑 }统一转换大小写后比较:
将输入转为小写(或大写)后和目标字符串比较,同样处理null:if (Console.ReadLine()?.ToLower() == "s") { // 匹配成功后的逻辑 }用集合包含判断:
如果后续需要匹配更多字符串,这种方式扩展性更强:if (new[] { "s", "S" }.Contains(Console.ReadLine())) { // 匹配成功后的逻辑 }
原写法报错原因
C#中||是布尔逻辑或运算符,只能用于布尔值之间的判断,无法直接对字符串执行"s"||"S"这类操作——编译器无法将两个字符串转换为布尔值进行或运算,因此会抛出错误。
内容的提问来源于stack exchange,提问作者Muhammad Roshaan Saad
相关产品推荐
相关产品推荐

