分割字符串时出现混淆错误

我有这行代码:

string[] ids = Request.Params["service"].Split(",");

Request.Params["service"]中的值为: "1,2"

我为什么得到:

 Error 1 The best overloaded method match for 'string.Split(params char[])' has some invalid arguments Error 2 Argument 1: cannot convert from 'string' to 'char[]' 

这对我来说毫无意义….

错误发生在等号右侧的所有内容上

您需要传递一个字符( System.Char ),而不是string

 string[] ids = Request.Params["service"].Split(','); 

String.Split没有重载,它接受params string[]或单个string ,这是使代码工作所需的。

如果要使用字符串(或多个字符串)进行拆分,则需要使用string[]并指定拆分选项:

 string[] ids = Request.Params["service"].Split(new[]{","}, StringSplitOptions.None); 

你必须使用params Char[]的重载:

 string[] ids = Request.Params["service"].Split(','); 

正如其他人所说,你提供的(“,”)双引号表示一个字符串,而Split函数接受一个Character数组或char []。 使用(’,’),单引号表示一个字符。 你也可以传递StringSplitOptions,如果你碰巧在你的字符串[]中得到空值,它需要一个char []与它一起传递,如下图所示。

  string splitMe = "test1,test2,"; string[] splitted1 = splitMe.Split(','); string[] splitted2 = splitMe.Split(new char[]{','},StringSplitOptions.RemoveEmptyEntries); //Will be length 3 due to extra comma MessageBox.Show(splitted1.Length.ToString()); //Will be length 2, Removed the empty entry since there was nothing after the comma MessageBox.Show(splitted2.Length.ToString()); 

Request.Params["service"].Split(",");行中Request.Params["service"].Split(",");

你用","而不是","来分裂

.Split()方法采用字符数组,而不是字符串