Closed. This question is opinion-based。它当前不接受答案。
                            
                        
                    
                
                            
                                
                
                        
                            
                        
                    
                        
                            想改善这个问题吗?更新问题,以便editing this post用事实和引用来回答。
                        
                        4年前关闭。
                                                                                            
                
        
我希望能够比较如下的整数和字符串:

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.?显然,.NET将1个或多个视为“ true”,但是我认为我们应该用较短的语法替换该范例,以简化代码的读写。

*********编辑:
正如某人在评论中所说,由于优先级问题,使用布尔逻辑时a==b==c==d==e会出现问题(例如:(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/

10-09 20:41