有没有一种快速方法来比较C#中多个值的相等性?
something like:
if (5==6==2==2){
//do something
}
由于
答案 0 :(得分:29)
if (a == b && b == c && c == d) {
// do something
}
答案 1 :(得分:15)
public static class Common {
public static bool AllAreEqual<T>(params T[] args)
{
if (args != null && args.Length > 1)
{
for (int i = 1; i < args.Length; i++)
{
if (args[i] != args[i - 1]) return false;
}
}
return true;
}
}
...
if (Common.AllAreEqual<int>(a, b, c, d, e, f, g))
这有助于:)
答案 2 :(得分:13)
在C#中,等于运算符(==
)的计算结果为bool
,因此5 == 6
的计算结果为false
。
比较5 == 6 == 2 == 2
会转化为
(((5 == 6) == 2) == 2)
评估为
((false == 2) == 2)
会尝试将bool
与int
进行比较。只有当你以这种方式比较布尔值时,语法才有效,但可能不会做你想要的。
进行多重比较的方法是@Joachim Sauer所建议的:
a == b && b == c && c == d
答案 3 :(得分:5)
这不可能,您必须将其拆分为单独的语句。
if(x == y && x == z) // now y == z
{
}
祝你好运
答案 4 :(得分:1)
使用C#没有直接的方法,但你可以使用一些帮助类。 查看专门针对此问题的VB.Net: test multiple values for equality?
的VB.NET主题