簡體   English   中英

C#&&,|| 經營者

[英]C# && , || Operators

我有一些來自MySQL的價值。 我想知道...我該怎么做:

if (Value.ToString() == "1" || Value.ToString() == "2" || Value.ToString() == "3" && SecondValue.ToString() == "5")

值可以是:1“或” 2“或” 3 ...和第二值“ 5”。 表示(三個“值”)之一和&SecondValue。 還是沒有辦法做到這一點? 我應該這樣做:

if (Value.ToString() == "1" && SecondValue.ToString() == "5"
{
}
if (Value.ToString() == "2" && SecondValue.ToString() == "5"
{
}
ect ....

謝謝您的回答 。

您的代碼幾乎是正確的,但是您需要在“或”條件周圍添加一個額外的括號以對它們進行分組。

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")

您可以根據需要使用括號將布爾條件分組。 如果需要“其中一種情況為真,而其他情況之一為真”的情況,請對這些情況進行適當的分組。 就您而言,最好使用集合來保存“值”的有效案例的值,例如:

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

試試這個,這很干凈:

if (SecondValue.ToString() == "5")
{
   if (Value.ToString() == "1" || Value.ToString() == "2"  || Value.ToString() == "3")
   {
      //Do Stuff
   }
}

問候,克雷克孔

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM