質問

このエラーが発生する理由

public class ParameterParser
{
    public List<string> ParseParameter(string queryString)
    {
        queryString = queryString.Replace(" ", "");

        string[] strs = queryString.Split(@"(", @"=", @",", @"<>", 
                                          StringSplitOptions.None);

        List<string> parameters = new List<string>();

        foreach (string ss in strs)
        {
            string s = ss.Trim(')');

            if (s.StartsWith("@") && !s.Equals("") && s!=null)
            {
                parameters.Add(s.Replace(" ", ""));
            }
        }

        return parameters;
    }
}

エラー3 'string.Split(params char [])'に最適なオーバーロードメソッドの一致には、無効な引数F:... \ ParameterParser.csがあります

役に立ちましたか?

解決

文字列の配列を渡したい場合は、明示的に行う必要があります:

string[] strs = queryString.Split(new string[] {"(", "=", ",", "<>"}, 
                                  StringSplitOptions.None);

次のようなものでコードをモデリングしていたと思われます:

string[] strs = queryString.Split('(', '=', ',');

これは、パラメータ配列(C#のparams修飾子)を使用しています。パラメーター配列は最終パラメーターにのみ適用可能で、String.Splitのオーバーロードはparams string[]を取りません。それがあなたのために働いていなかった理由です。

文字列を単純な文字列リテラルに変更したことに注意してください-実際に必要な場合は、逐語的な文字列リテラルのみを使用することをお勧めします。

他のヒント

@ <!> quot;(<!> quot ;, @ <!> quot; = <!> quot ;, @ <!> quot;、<!> quot ;, @ <!> quot; <! > lt; <!> gt; <!> quot;は、単一の文字列でもchar []配列でもありません

これを試してください:

string[] strs = queryString.Split(new string[] {@"(", @"=",@",",@"<>" },StringSplitOptions.None);
ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top