pen*_*ake 6 c# comparison equality operators
有没有快速的方法来比较C#中多个值的相等性?
something like:
if (5==6==2==2){
//do something
}
Run Code Online (Sandbox Code Playgroud)
谢谢
Joa*_*uer 30
if (a == b && b == c && c == d) {
// do something
}
Run Code Online (Sandbox Code Playgroud)
Fra*_*oto 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))
Run Code Online (Sandbox Code Playgroud)
这可能有助于:)
Zan*_*ano 13
在C#,相等运算符(==)的计算结果为bool这样5 == 6的计算结果为false.
比较5 == 6 == 2 == 2将转化为
(((5 == 6) == 2) == 2)
Run Code Online (Sandbox Code Playgroud)
评估为
((false == 2) == 2)
Run Code Online (Sandbox Code Playgroud)
这会尝试将a bool与a进行比较int.只有当你以这种方式比较布尔值时,语法才有效,但可能不会做你想要的.
进行多重比较的方法是@Joachim Sauer建议的:
a == b && b == c && c == d
Run Code Online (Sandbox Code Playgroud)
不,这是不可能的,你必须将它分成单独的语句.
if(x == y && x == z) // now y == z
{
}
Run Code Online (Sandbox Code Playgroud)
祝好运
| 归档时间: |
|
| 查看次数: |
6650 次 |
| 最近记录: |