String Split() - 方法

use*_*312 0 c#-2.0

为什么我收到此错误?

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;
    }
}
Run Code Online (Sandbox Code Playgroud)

错误3'string.Split(params char [])'的最佳重载方法匹配有一些无效的参数F:...\ParameterParser.cs

Jon*_*eet 6

如果要传递字符串数组,则必须明确地执行此操作:

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

我怀疑你是在用这样的东西建模你的代码:

string[] strs = queryString.Split('(', '=', ',');
Run Code Online (Sandbox Code Playgroud)

这是使用参数数组(paramsC#中的修饰符).参数阵列是只适用于最后一个参数,并且没有过载String.Split需要params string[].这就是为什么它不适合你.

请注意,我已将字符串更改为简单的字符串文字 - 我建议您在实际需要时仅使用逐字字符串文字.