Me gustaría convertir una matriz de cadenas en una sola cadena.
string[] test = new string[2];
test[0] = "Hello ";
test[1] = "World!";
Me gustaría tener algo como "¡Hola mundo!"
Me gustaría convertir una matriz de cadenas en una sola cadena.
string[] test = new string[2];
test[0] = "Hello ";
test[1] = "World!";
Me gustaría tener algo como "¡Hola mundo!"
Respuestas:
string[] test = new string[2];
test[0] = "Hello ";
test[1] = "World!";
string.Join("", test);
var separator = ", ";
string.Join(separator , test);
string.Join(string.Empty, test)
lugar de usar un empty-paranthesis
.
Una opción un poco más rápida que usar el uso ya mencionado del Join()
método es el método Concat () . No requiere un parámetro delimitador vacío como lo Join()
hace. Ejemplo:
string[] test = new string[2];
test[0] = "Hello ";
test[1] = "World!";
string result = String.Concat(test);
Por lo tanto, es probable que sea más rápido.
Concat
es mejor, en el código interno de Join
, agregará un separador después de cada elemento. Pero Concat
no tiene tales códigos, es más simple y más directo que Join
. Esta es la respuesta más adecuada.
Tratar:
String.Join("", test);
que debería devolver una cadena que une los dos elementos. ""
indica que desea que las cadenas se unan sin separadores.
"Hello "
en la pregunta ya tenía un espacio final. Si el espacio no estuviera allí, estaría en lo correcto, y usarlo " "
como separador tendría más sentido.
Una cadena simple. Concat () es lo que necesita.
string[] test = new string[2];
test[0] = "Hello ";
test[1] = "World!";
string result = string.Concat(test);
Si también necesita agregar un separador (espacio, coma, etc.), use string.Join ().
string[] test = new string[2];
test[0] = "Red";
test[1] = "Blue";
string result = string.Join(",", test);
Si tiene que realizar esto en una matriz de cadenas con cientos de elementos que cadenas. Unir () es mejor por punto de vista de rendimiento. Simplemente da un argumento "" (en blanco) como separador. StringBuilder también se puede usar por razones de rendimiento, pero hará que el código sea un poco más largo.
Concat
y Join
son más rápidos que StringBuilder
si tienes 4 o menos cadenas para concatenar.
Aggregate
También se puede utilizar para lo mismo.
string[] test = new string[2];
test[0] = "Hello ";
test[1] = "World!";
string joinedString = test.Aggregate((prev, current) => prev + " " + current);
String.Join
debido a las múltiples cadenas adicionales construidas. Lea stackoverflow.com/questions/217805/… para ver la variante adecuada de Aggregate
.
string ConvertStringArrayToString(string[] array)
{
//
// Concatenate all the elements into a StringBuilder.
//
StringBuilder strinbuilder = new StringBuilder();
foreach (string value in array)
{
strinbuilder.Append(value);
strinbuilder.Append(' ');
}
return strinbuilder.ToString();
}
string.Join(" ", array)
(excepto que el suyo agrega un espacio final). ¿Por qué no solo usar el de la biblioteca?
En la respuesta aceptada, String.Join no es la mejor práctica por su uso. String.Concat debería haberse usado ya que OP incluía un espacio final en el primer elemento: "Hola" (en lugar de usar un delimitador nulo).
Sin embargo, dado que OP solicitó el resultado "¡Hola Mundo!", String.Join sigue siendo el método apropiado, pero el espacio en blanco final se debe mover al delimitador.
// string[] test = new string[2];
// test[0] = "Hello ";
// test[1] = "World!";
string[] test = { "Hello", "World" }; // Alternative array creation syntax
string result = String.Join(" ", test);