C# && , || Operators
本文关键字:amp Operators | 更新日期: 2023-09-27 18:35:53
我有一些来自MySQL的值。我想知道...我该如何做到以下几点:
if (Value.ToString() == "1" || Value.ToString() == "2" || Value.ToString() == "3" && SecondValue.ToString() == "5")
值可以是:1"或"2"或"3 ...和第二个值"5"。表示(三个"价值")之一&&&第二值。还是没有办法做到这一点?我应该这样做:
if (Value.ToString() == "1" && SecondValue.ToString() == "5"
{
}
if (Value.ToString() == "2" && SecondValue.ToString() == "5"
{
}
ect ....
谢谢你的回答。
您的代码几乎是正确的,但您需要在"or"条件周围添加一个额外的括号来对它们进行分组。
if ((Value.ToString() == "1" || Value.ToString() == "2" || Value.ToString() == "3")
&& SecondValue.ToString() == "5")
我认为你想做的是这样的:
if (new List<string>() { "1", "2", "3" }.Contains(Value.ToString()) && SecondValue.ToString() == "5")
试试这个,它是干净的枚举:
if (SecondValue.ToString() == "5")
{
if (Value.ToString() == "1" || Value.ToString() == "2" || Value.ToString() == "3")
{
//Do Stuff
}
}
问候克雷孔
您可以使用括号对布尔条件进行所需的分组。如果您想要"其中一个事例为真,而这些其他事例之一为真"的情况,请对个案进行适当分组。在您的情况下,您最好使用集合来保存"Value"的有效案例的值,如下所示:
var myValue = Value.ToString();
var myValidCases = new [] {"1", "2", "3"};
if(myValidCases.Any(validCase => validCase == myValue) && SecondValue.ToString() == "5")
{
//do something
}
if
(
(
Value.ToString() == "1" ||
Value.ToString() == "2" ||
Value.ToString() == "3"
) &&
SecondValue.ToString() == "5"
)
它基本上是这样的:
(Value == 1 && SecondValue == 5) || (Value == 2 && SecondValue == 5) || (Value == 3 && SecondValue == 5)
现在 && 运算符非常像乘法运算符,因为它是分布式的。这意味着我们可以这样做:
(Value == 1 || Value == 2 || Value == 3) && SecondValue == 5