2009-08-01 63 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