c# - truncar - string en c++
Convierte una lista en una cadena en C# (10)
El método .ToString()
para los tipos de referencia generalmente se resuelve nuevamente en System.Object.ToString()
menos que lo sobrescriba en un tipo derivado (posiblemente usando métodos de extensión para los tipos incorporados). El comportamiento predeterminado para este método es generar el nombre del tipo al que se llama. Entonces, lo que estás viendo es el comportamiento esperado.
Podría intentar algo como string.Join(", ", myList.ToArray());
lograr esto. Es un paso adicional, pero podría ponerse en un método de extensión en System.Collections.Generic.List<T>
para hacerlo un poco más fácil. Algo como esto:
public static class GenericListExtensions
{
public static string ToString<T>(this IList<T> list)
{
return string.Join(", ", list);
}
}
(Tenga en cuenta que esto es código de mano libre y no probado. No tengo un compilador a mano en este momento. Por lo tanto, querrá experimentar un poco con él).
¿Cómo convierto una lista en una cadena en C #?
Cuando ejecuto toString
en un objeto List, obtengo:
System.Collections.Generic.List`1 [System.String]
Es difícil de decir, pero quizás estés buscando algo como:
var myString = String.Join(String.Empty, myList.ToArray());
Esto invocará implícitamente el método ToString () en cada uno de los elementos de la lista y los concatenará.
La respuesta directa a su pregunta es String.Join
como otros mencionaron.
Sin embargo, si necesita algunas manipulaciones, puede usar Aggregate
List<string> employees = new List<string>();
employees.Add("e1");
employees.Add("e2");
employees.Add("e3");
string employeesString = "''" + employees.Aggregate((x, y) => x + "'',''" + y) + "''";
Console.WriteLine(employeesString);
Console.ReadLine();
Puedes usar una string.Join . 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íneas basado en cadenas de su elección.
Si desea algo un poco más complejo que una unión simple, puede usar LINQ, por ej.
var result = myList.Aggregate((total, part) => total + "(" + part.ToLower() + ")");
Tomará ["A", "B", "C"] y producirá "(a) (b) (c)"
Si desea convertir los elementos de una lista en una cadena larga grande, haga esto: String.Join("", myList)
. Algunas versiones anteriores del marco de trabajo no le permiten pasar un IEnumerable como el segundo parámetro, por lo que puede necesitar convertir su lista a un array llamando a .ToArray ().
Tal vez estás tratando de hacer
string combindedString = string.Join( ",", myList.ToArray() );
Puede reemplazar "," con lo que quiere dividir los elementos en la lista por.
Usted tiene una List<string>
- por lo que si desea que se concatenten, algo así como
string s = string.Join("", list);
funcionaría (en .NET 4.0 al menos). El primer parámetro es el delimitador. Entonces también puedes delimitar las comas, etc.
También es posible que desee utilizar StringBuilder para ejecutar concatenaciones en lugar de formar una lista.
Voy a ir con mi intuición y asumir que desea concatenar el resultado de llamar a ToString
en cada elemento de la lista.
var result = string.Join(",", list.ToArray());
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 utilizar ToArray () en la lista primero.