2009-08-01 64 views
0

为什么我得到这个错误?String Split() - 方法

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炭[])' 具有一些无效参数F:... \ ParameterParser.cs

回答

6

,就得明确地做到这一点:

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

我怀疑你是这样的东西造型代码:

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

这是通过使用参数数组(在params修饰符C#)。参数数组仅适用于最终参数,并且String.Split的过载不需要params string[]。这就是为什么它不适合你。

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

0

@ “(”,@” = “@”, “@” <>”是不是一个单一的字符串或一个char []数组

尝试这样的:如果你想传递一个字符串数组

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

它不一定是 - 请参阅http://msdn.microsoft.com/en-us/library/tabh47cf.aspx – 2009-08-01 11:27:19