繁体   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