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

时间:2013-04-15 20:19:01

标签: c# asp.net-mvc-3 split

我有这行代码:

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[]'

这对我没有意义......

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

4 个答案:

答案 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()方法采用字符数组,而不是字符串