3

我有这行代码:

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

4 回答 4

19

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

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

没有重载String.Split需要 aparams string[]或 single string,这是使您的代码正常工作所必需的。

如果你想用一个字符串(或多个字符串)分割,你需要使用 astring[]并指定分割选项:

string[] ids = Request.Params["service"].Split(new[]{","}, StringSplitOptions.None);
于 2013-04-15T20:20:30.797 回答
4

您必须将重载与params Char[]

string[] ids = Request.Params["service"].Split(',');
于 2013-04-15T20:20:24.537 回答
2

正如其他人在这里所说,您提供的 (",") 双引号表示一个字符串,Split 函数接受一个字符数组或 char[]。使用 (',') ,单引号表示一个字符。您还可以传递 StringSplitOptions,如果您碰巧在 string[] 中得到空值,则需要一个 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());
于 2013-04-15T20:41:10.373 回答
-1

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

你正在分裂","而不是','

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

于 2013-04-15T20:20:36.077 回答