Convertir una lista en una cadena en C#
¿Cómo convierto una lista en una cadena en C#?
Cuando ejecuto toString
en un objeto Lista, obtengo:
System.Collections.Generic.List`1[System.String]
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.
Voy a seguir mi instinto y asumiré que desea concatenar el resultado de invocar ToString
cada elemento de la lista.
var result = string.Join(",", list.ToArray());
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.
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.
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)"