Convertir una lista en una cadena en C#

Resuelto IAdapter asked hace 13 años • 15 respuestas

¿Cómo convierto una lista en una cadena en C#?

Cuando ejecuto toStringen un objeto Lista, obtengo:

System.Collections.Generic.List`1[System.String]

IAdapter avatar Feb 13 '11 06:02 IAdapter
Aceptado

Quizás estés intentando hacer:

string combinedString = string.Join( ",", myList.ToArray() );

Puede reemplazar ,con cualquier carácter por el que desee dividir los elementos de la lista.

Además, como se menciona en los comentarios, también puedes hacer:

string combinedString = string.Join( ",", myList);

Referencia :

Join<T>(String, IEnumerable<T>)

Concatena los miembros de una colección IEnumerable construida de tipo String , utilizando el separador especificado entre cada miembro.

Øyvind Bråthen avatar Feb 12 '2011 23:02 Øyvind Bråthen

Voy a seguir mi instinto y asumiré que desea concatenar el resultado de invocar ToStringcada elemento de la lista.

var result = string.Join(",", list.ToArray());
ChaosPandion avatar Feb 12 '2011 23:02 ChaosPandion

Podrías usar string.Join:

List<string> list = new List<string>()
{
    "Red",
    "Blue",
    "Green"
};

string output = string.Join(Environment.NewLine, list.ToArray());    
Console.Write(output);

El resultado sería:

Red    
Blue    
Green

Como alternativa a Environment.NewLine, puede reemplazarlo con un separador de línea basado en cadenas de su elección.

eandersson avatar Feb 12 '2011 23:02 eandersson

String.Join(" ", myList)o String.Join(" ", myList.ToArray()). El primer argumento es el separador entre las subcadenas.

var myList = new List<String> { "foo","bar","baz"};
Console.WriteLine(String.Join("-", myList)); // prints "foo-bar-baz"

Dependiendo de su versión de .NET, es posible que necesite usar ToArray() en la lista primero.

Markus Johnsson avatar Feb 12 '2011 23:02 Markus Johnsson

Si desea algo un poco más complejo que una simple unión, puede usar LINQ, por ejemplo

var result = myList.Aggregate((total, part) => total + "(" + part.ToLower() + ")");

Tomará ["A", "B", "C"] y producirá "(a)(b)(c)"

James Gaunt avatar Feb 12 '2011 23:02 James Gaunt