为什么我收到此错误?
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
答案 0 :(得分:6)
如果要传递字符串数组,则必须明确地执行此操作:
string[] strs = queryString.Split(new string[] {"(", "=", ",", "<>"},
StringSplitOptions.None);
我怀疑你是在用这样的东西建模你的代码:
string[] strs = queryString.Split('(', '=', ',');
这是使用参数数组(C#中的params
修饰符)。参数数组仅适用于最终参数,String.Split
的重载不需要params string[]
。这就是为什么它不适合你。
请注意,我已将字符串更改为简单的字符串文字 - 我建议您在实际需要时仅使用逐字字符串文字。
答案 1 :(得分:0)
@“(”,@“=”,@“,”,@“&lt;&gt;”不是单个字符串或char []数组
试试这个:
string[] strs = queryString.Split(new string[] {@"(", @"=",@",",@"<>" },StringSplitOptions.None);