Tenga en cuenta que new string(null)rinde String.Emptyy nonull ! Si desea conservar null, puede hacer un método de extensión static string ToStringSafe(this char[] buf) { return buf == null ? null : new string(buf); }.
Skod
8
@Skod: Al ver que es imposible que una "nueva" expresión devuelva un valor que no sea una instancia de objeto, eso no debería sorprender a nadie.
Matti Virkkunen
@MattiVirkkunen: Lanzar una excepción también es algo razonable. Ese es el comportamiento que habría adivinado para pasar nulo al constructor de cadenas.
Charles Taylor
81
Utilice el constructor de cadena que acepta un char []
¡Si solo fueras tres minutos más rápido, habrías respondido antes de que se hiciera la pregunta!
DCastenholz
1
Olvida los minutos. Son solo 17 segundos. Mi respuesta justo arriba es mi segunda respuesta más votada en el sitio. De hecho, estoy aquí ahora porque alguien lo votó nuevamente, casi 10 años después. Y las dos respuestas no son realmente diferentes ... pero la mía se publicó 17 segundos más rápido, y eso significó una diferencia de 500 votos: /
Joel Coehoorn
35
char[] characters;...string s =newstring(characters);
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"
Utilice el constructor de cadenas que acepta la matriz de caracteres como argumento, la posición inicial y la longitud de la matriz. La sintaxis se da a continuación:
Creo que eso es lo que estaba buscando. Pero no sabía de ninguna clase llamada CharArray. Quizás quiso decir algo como:char[] charArray = new char[5] { 'a', 'b', 'c', '\0', '\0' }; string charsAsString = new string(charArray, 0, 3); // only want part of array.
Suncat2000
CharArray no es clase, solo variable de tipo char []
Dilip Nannaware
13
Otra alternativa
char[] c ={'R','o','c','k','-','&','-','R','o','l','l'};string s =String.Concat( c );Debug.Assert( s.Equals("Rock-&-Roll"));
new string(null)
rindeString.Empty
y nonull
! Si desea conservarnull
, puede hacer un método de extensiónstatic string ToStringSafe(this char[] buf) { return buf == null ? null : new string(buf); }
.Utilice el constructor de cadena que acepta un char []
fuente
fuente
Otra forma:
fuente
string.Join
solo acepta enstring[]
lugar dechar[]
string.Join<char>("_", chars)
lugar destring.Join("_", chars)
fuente
Utilice el constructor de cadenas que acepta la matriz de caracteres como argumento, la posición inicial y la longitud de la matriz. La sintaxis se da a continuación:
fuente
char[] charArray = new char[5] { 'a', 'b', 'c', '\0', '\0' }; string charsAsString = new string(charArray, 0, 3); // only want part of array.
Otra alternativa
fuente