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