簡體   English   中英

if語句的多個值

[英]Multiple value for if-statement

如果我的陳述包含兩個條件:

string searchx = "some string"; 

if ((searchx.Contains("a1")) || (searchx.Contains("a2")))
{
...
}

但是如何用語句的單個變量獲取值列表?

如果我得到a1, a2, a3, a4, a5, a6, a7, a8, a9...

我能用這種方式做到這一點,似乎是錯誤的嘗試:

var valueList = new List<string> { "a1", "a2", "a3", "a4"};

但只是為了解釋我想要做什么,所以如果valueList下存在任何值,則接受條件:

if (searchx.Contains(valueList)) 
{
...
}

最好的,如果我可以得到多個值返回我猜或任何其他方式通過任何其他方式的單個變量獲得更新的值列表,這可以這樣對我有用嗎?

這對我有用:

if (valueList.Any(x => searchx.Contains(x)))
{
}

甚至更短(感謝rajeeshmenoth)

    if(valueList.Any(searchx.Contains))

您可以嘗試使用Except

if (valueList.Except(searchx).Any())
{

}

不是最好的解決方案,但有效。

bool containsValue(string search)
{
var valueList = new List<string> { "a1", "a2", "a3", "a4"};
foreach (string s in valueList)
 {
 if(search.Contains(s))
  return true;
 }
return false;
}

並使用它像:

if (containsValue(searchx))
{
... do something ...
}

你可以使用Linq:

  bool b = valueList.Any(searchx.Contains);

嘗試這個 :

    string searchx = "a8"; 
    var valueList = new List<string>{"a1", "a2", "a3", "a4"};

    if (valueList.Any(searchx.Contains))
        Console.WriteLine("Data Matching..!!");
    else
        Console.WriteLine("Not Matching..!!");

演示: 點擊這里

你可以做一個foreach循環

string search = "GIVE A STRING";
List<string> DataList = new List<string> {"a1", "a2", "a3",.....};
foreach(string Data in DataList)
{ 
  if(search.Contains(Data))
  { //TODO }
}

暫無
暫無

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

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