2012-02-23 17 views
0

私は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}}; 
+0

申し訳ありませんが、私はC#の初心者です:) – mithril333221

+0

おそらく問題はありませんが、 'Console.WriteLine()'行の最後に ')'を忘れてしまいました。 –

答えて

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('-'); 
+0

次のエラーが発生しました。 '割り当てられていないローカル変数' temp2 'の使用 – mithril333221

+0

実際。変更が追加されました。 –

0

splitを呼び出すと、文字列の配列が返されます。 string []を文字列変数に代入することはできません。

0

他の人が言ったように、Splitは配列を返します。ただし、一度に複数の文字に分割することはできます。例えば、この場合

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

は、splitアレイは "A"、 "B"、 "C"、 "D"、及び "D" を含む、5つの指標を含むであろう。

関連する問題