我希望能够比较这样的整数和字符串:
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或更多被视为' true'通过.NET,但我认为我们应该用更短的语法替换这种范例,以便于阅读和编写代码。
*********编辑:
正如有人在评论中所说,由于优先级问题(例如:a==b==c==d==e
),使用布尔逻辑时(false==false) == false
会出现问题。但是,当使用整数或字符串时,这些问题不会出现。
答案 0 :(得分:1)
您基本上需要检查所有变量是否具有相同的值?在它们是原始类型(int,string,double等)之前,你可以将它们放入不同的集合中,并检查它是否只包含一个元素,如下所示:
var collection = new[] {a,b,c,d,e};
if(collection.Distinct().Count() == 1)
{
// means a==b==c==e
}