C和C#条件语句的更简单语法

时间:2015-04-03 12:56:37

标签: c# c syntax conditional-statements

我希望能够比较这样的整数和字符串:

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会出现问题。但是,当使用整数或字符串时,这些问题不会出现。

1 个答案:

答案 0 :(得分:1)

您基本上需要检查所有变量是否具有相同的值?在它们是原始类型(int,string,double等)之前,你可以将它们放入不同的集合中,并检查它是否只包含一个元素,如下所示:

var collection = new[] {a,b,c,d,e};
if(collection.Distinct().Count() == 1)
{
    // means a==b==c==e
}