我有这行代码:
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(',');
正如其他人在这里说你提供的(“”)双引号表示字符串分割函数接受一个字符数组或的char []。 使用(“”),单引号表示一个字符。 您也可以沿着如果你碰巧得到您的字符串值为空的[]它需要一个char []与它一起传递,如下图所示,其StringSplitOptions通过。
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(",");
你通过拆分","
不是','
所述.Split()
方法接受字符数组,而不是一个串