拆分字符串时令人困惑的错误(Confusing error when splitting a str

2019-08-31 07:03发布

我有这行代码:

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

这是没有意义的我....

在一切都发生在等号右边的错误

Answer 1:

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

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

有没有超载String.Split接受一个params string[]或单一string ,这是将需要使你的代码工作。

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

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


Answer 2:

你必须使用过载与params Char[]

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


Answer 3:

正如其他人在这里说你提供的(“”)双引号表示字符串分割函数接受一个字符数组或的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());


Answer 4:

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

你通过拆分","不是','

所述.Split()方法接受字符数组,而不是一个串



文章来源: Confusing error when splitting a string