将char[]转换为字符串的正确方法是什么?

来自字符数组的ToString()方法无法完成此任务。


这里有一个构造函数:

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

使用string的构造函数,它接受char[]

char[] c = ...;
string s = new string(c);

char[] characters;
...
string s = new string(characters);

String mystring = new String(mychararray);

还有一种方法:

char[] chars = {'a', ' ', 's', 't', 'r', 'i', 'n', 'g'};
string s = string.Join("", chars);
//we get "a string"
// or for fun:
string s = string.Join("_", chars);
//we get "a_ _s_t_r_i_n_g"

使用字符串构造函数,它接受chararray作为参数,数组的起始位置和长度。语法如下:

string charToString = new string(CharArray, 0, CharArray.Count());

另一种替代方法

char[] c = { 'R', 'o', 'c', 'k', '-', '&', '-', 'R', 'o', 'l', 'l' };
string s = String.Concat( c );

Debug.Assert( s.Equals( "Rock-&-Roll" ) );