我希望能够像这样比较整数和字符串:
if(a==b==c==d==e)
不幸的是,C# 无法编译它(我不确定 C)。
如果我可以解决这个问题,有什么想法吗?为什么 C# 团队不允许这种更简单的语法? (而不是像 a==b && a==c && a==d && a==e
这样麻烦的东西)。
作为一个单独的查询, if(someValue == (5 || 6 || 7 || 8)) 有什么问题,而不是一直说 someValue==5 || someValue==6 || etc. etc.
?显然,1 个或多个被 .NET 视为“true”,但我认为我们应该用更短的语法替换该范例,以方便代码的阅读和编写。
********* 编辑:
正如有人在评论中所说, a==b==c==d==e
出现问题由于优先级问题而使用 bool 逻辑时(例如: (false==false) == false
)。但是,使用整数或字符串时不会出现此类问题。
最佳答案
您基本上需要检查所有变量是否具有相同的值?直到它们是原始类型(int、string、double等),您可以将它们放入不同的集合中,并检查它是否只包含一个元素,如下所示:
var collection = new[] {a,b,c,d,e};
if(collection.Distinct().Count() == 1)
{
// means a==b==c==e
}
关于c# - C 和 C# 条件语句的更简单语法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29432611/