簡體   English   中英

字符串中的C#OR語句。包含

[英]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.

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