我有这行代码:
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[]'
这对我没有意义......
错误发生在等号右侧的所有内容
答案 0 :(得分:19)
您需要传递一个角色(System.Char
),而不是string
:
string[] ids = Request.Params["service"].Split(',');
String.Split
没有超载需要params string[]
或单string
,这是使您的代码有效所需的。
如果您想要使用字符串(或多个字符串)进行拆分,则需要使用string[]
并指定拆分选项:
string[] ids = Request.Params["service"].Split(new[]{","}, StringSplitOptions.None);
答案 1 :(得分:3)
您必须使用params Char[]
:
string[] ids = Request.Params["service"].Split(',');
答案 2 :(得分:2)
正如其他人所说,你提供的(“,”)双引号表示一个字符串,而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());
答案 3 :(得分:-1)
在线
Request.Params["service"].Split(",");
您按","
而非','
.Split()
方法采用字符数组,而不是字符串