1

私はこれを持っています:

        if (_strInput.Contains("xxx") && _strInput.Contains("yyy" || "zzz"))
        {
            _strOutput[0] = "Success";
        }

しかし、私はこのエラーを受け取ります:

エラー1演算子'||' タイプ'string'および'string'のオペランドには適用できません

基本的に私が探しているのは、文字列に存在する1つの値と、存在する値の選択からの1つの値です。事前に感謝します、どんな助けも素晴らしいでしょう!

4

3 に答える 3

4

おそらくあなたはこれを意味しますか?

    if (_strInput.Contains("xxx") && (_strInput.Contains("yyy") || _strInput.Contains("zzz"))
    {
        _strOutput[0] = "Success";
    }

これが行うことは、_strInputに「xxx」と「yyy」または「zzz」のいずれかが含まれている場合にのみ実行されます。

于 2013-01-01T22:04:57.430 に答える
3

両方の文字列を1つで使用することはできませんContains。括弧で囲んでください。

if (_strInput.Contains("xxx") &&( _strInput.Contains("yyy") 
                               || _strInput.Contains("zzz"))
{
    _strOutput[0] = "Success";
}

したがって、文字列には「xxx」と「yyy」または「zzz」のいずれかが含まれている必要があります。

于 2013-01-01T22:04:39.117 に答える
2

これがコードベースでよくあることである場合は、拡張メソッドを使用できます。

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";
}
于 2013-01-01T22:12:10.997 に答える