在一个条件下比较多个值

时间:2015-04-29 09:00:49

标签: c# variables if-statement conditional

Int32 int1, int2, int3 = 123;

鉴于上述变量,我如何测试我的所有变量都具有值123,而无需创建集合来执行某些Any或其他内容?

我尝试过的事情

if(int1 == int2 == int3 == 123)
{
   // Fantastic code here
}

修改

我必须道歉,在我的问题中,我还不够清楚。我完全了解&&运算符,我问的是优雅&#39;,即如何避免重复我想要比较的值。 < / p>

以同样的方式,我在一次点击中为所有3个整数变量分配了相同的值,我现在想进行比较。到目前为止,它看起来好像没有办法做到这一点。我想我会问不可能,我必须坚持基本语法并保持简单。

4 个答案:

答案 0 :(得分:6)

您可以创建有用的扩展功能:

public static bool EqualsAll<T>(this T val, params T[] values)
{
    return values.All(v => v.Equals(val));
}

称之为:

bool res = 123.EqualsAll(int1,int2,int3);

答案 1 :(得分:1)

你可以尝试这样的事情,使用逻辑和运算符:

if(int1 == 123 &&
   int2 == 123 &&
   int3 == 123)
{

}

答案 2 :(得分:1)

if(int1 == something && int2 == something && int3 == 123)
{
   // Fantastic code here
}

这是您应该使用&&运算符执行此操作的方法。您可以使用此功能检查多个条件。

更新:

就一次性检查多个值而言,您可以尝试使用这些值创建一个数组,然后只需触发一个简单的LINQ语句来检查所有这些值是否为特定值:

if (new[] { int1, int2, int3 }.All(x => x == 1))

不知道这是否符合您的要求,只是一个建议。

答案 3 :(得分:1)

if(int1 == 123 && int2 == 123 && int3 == 123) {  // Code }

你想要实现的目标是不可能的。 你必须将它与&amp;。

分开