2012-11-02 75 views
13

我想將字符數組的一部分轉換爲字符串。什麼是最好的方式來做到這一點。如何將字符數組的一部分轉換爲字符串

我知道我能做到對整個陣列

char[] chars = {'a', ' ', 's', 't', 'r', 'i', 'n', 'g'}; 
string s = new string(chars); 

但對於剛剛元件2〜4例如下面的?

我也知道我可以遍歷數組並提取它們,但我想知道是否有更簡潔的方法來完成它。

回答

31

使用String constructor overload這需要一個字符數組,索引和長度:

String text = new String(chars, 2, 3); // Index 2-4 inclusive 
+0

優秀 - 謝謝你 – Graham

1

更新

你也可以使用LINQ做到這一點。

char[] chars = {'a', ' ', 's', 't', 'r', 'i', 'n', 'g'}; 
char[] selected = chars.Where((c, index) => index >= 2 && index <= 3).ToArray(); 
string s = new String(selected); 
+0

這不會編譯因爲選擇不返回串。我也會用skip和take來代替這個呼叫。 –

+0

@JonSkeet剛剛更新... –

+1

現在,它會工作,但效率低下,過於複雜。 –

2

您可以使用LINQ

char[] chars = { 'a', ' ', 's', 't', 'r', 'i', 'n', 'g' }; 
string str = new string(chars.Skip(2).Take(2).ToArray()); 

不過關,當然string overloaded constructor是要走的路

-1
string a = "Hello"; 
char []b = a.ToCharArray(); 

string as=null; 

//note this line is important 
as = new string(b); 
+1

-1:這根本不回答問題 –

相關問題