[英]C# OR statement in string.Contains
我有這個:
if (_strInput.Contains("xxx") && _strInput.Contains("yyy" || "zzz"))
{
_strOutput[0] = "Success";
}
但我得到這個錯誤:
錯誤1運算符'||' 不能應用於'string'和'string'類型的操作數
基本上,我要尋找的是一個值存在於字符串中,而一個值則存在於選擇的值中。 任何幫助都將是驚人的,在此先感謝您!
也許你是這個意思?
if (_strInput.Contains("xxx") && (_strInput.Contains("yyy") || _strInput.Contains("zzz"))
{
_strOutput[0] = "Success";
}
僅當_strInput包含“ xxx”和“ yyy”或“ zzz”時才執行此操作。
您不能在一個Contains
同時使用兩個字符串,而是將它們用括號括起來:
if (_strInput.Contains("xxx") &&( _strInput.Contains("yyy")
|| _strInput.Contains("zzz"))
{
_strOutput[0] = "Success";
}
因此,字符串必須包含“ xxx”和“ yyy”或“ zzz”。
如果這是代碼庫中的常見情況,則可以使用擴展方法。
public static class ExtensionMethod
{
public static bool ContainsAny(this string str, params string[] values)
{
return values.Any(x => str.Contains(x));
}
}
測試:
"abcd".ContainsAny("a", "c"); //True
"abcd".ContainsAny("z"); //False
"abcd".ContainsAny("z", "ac", "ab") //True
所以你的代碼最終看起來像
if (_strInput.Contains("xxx") && _strInput.ContainsAny("yyy", "zzz"))
{
_strOutput[0] = "Success";
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.