拆分时无法将string []隐式转换为字符串

时间:2012-02-23 01:35:21

标签: c#

我是c#的新手,我不明白为什么这不起作用。我想拆分先前拆分的字符串。

我的代码如下:

int i;
string s;
string[] temp, temp2;

Console.WriteLine("write 'a-a,b-b,c-c,d-d'";
s = Console.ReadLine();
temp = s.Split(',');

for (i = 0; i < temp.Length; i++)
    temp2[i] = temp[i].Split('-');

我收到以下错误Cannot implicitly convert type 'string[]' to 'string

我想结束:

temp = {a-a , b-b , c-c , d-d};
temp2 = {{a,a},{b,b},{c,c},{d,d}};

3 个答案:

答案 0 :(得分:10)

string.Split()的结果是string[],您应该在分配给string[] temp时通过正确的用法看到它。但是当您分配string[] temp2的元素时,您试图将字符串数组存储在仅用于存储字符串的插槽中,因此编译器错误。您的代码可以在下面进行简单的更改。

string[] temp;
string[][] temp2; // array of arrays 

string s = "a-a,b-b,c-c,d-d";
temp = s.Split(',');

temp2 = new string[temp.Length][];

for (int i = 0; i < temp.Length; i++)
    temp2[i] = temp[i].Split('-'); 

答案 1 :(得分:0)

当您调用split时,它会返回一个字符串数组。您不能将string []分配给字符串变量。

答案 2 :(得分:0)

正如其他人所说,Split返回一个数组。但是,您可以一次拆分多个字符。例如,

string s = "a,b,c,d-d";
var split = s.Split(new[] {',', '-'});

在这种情况下,split数组将包含5个索引,包含&#34; a&#34;,&#34; b&#34;,&#34; c&#34;,&#34 ; d&#34;和&#34; d&#34;。