2010-02-26 165 views
0

時有效:字符串數組轉換

string s4 = "H e l l o"; 

string[] arr = s4.Split(new char[] { ' ' });   
foreach (string c in arr) 
{ 
    System.Console.Write(c); 
} 

爲什麼這是無效

string s4 = "H e l l o"; 

char[] arr = s4.Split(new char[] { ' ' });   
foreach (char c in arr) 
{ 
    System.Console.Write(c); 
} 

廣東話我們建立與分配器方法的字符數組。

回答

5

你的意圖說

char[] arr = s4.Split(new char[] { ' ' }); 

是告訴編譯器比他知道得多,即拆分後的部分將用每一個字符長,你想將它們轉換爲字符。你爲什麼不明確告訴他,例如說

char[] arr = s4.Split(new char[] { ' ' }).Select(c => c[0]).ToArray();

+4

+1,但我也想指出的是,這是'斯普利特(PARAMS的char [])'所以你可以說's4.Split(」「)。選擇(C => ToArray()' – 2010-02-26 08:09:21

+0

因此,使用LINQ我們可以明確地指導編譯器,這很好。 – Gokul 2010-02-26 08:14:31

4

char不是string的子類型,以開始。所以,因爲string.Split返回一個字符串數組,它不是一個字符數組,即使每個字符串的長度爲1

1

爲什麼這是無效的

因爲Split回報string[]而不是char[]

不能我們用 分割器方法構建一個字符數組。

參見Thomas的答案(使用LINQ)

由於

2

拆分方法返回字符串[],不是char []。即使每個字符串的長度爲1.

如果您願意,可以使用String.toCharArray()。