質問
このエラーが発生する理由
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);
所属していません StackOverflow