¿te refieres a string combindedString = string.Join (",", myList.ToArray ());
Sawe
2
Argumento '2': no se puede convertir de 'System.Collections.Generic.List <string>' a 'string []'
Ash
9
Utilicé esto recientemente, funciona, solo omita el .ToArray ()
Adrian K
3
@AdrianK tiene razón porque .Net 4.0 agregó la capacidad de pasar cualquier IEnumerable <cadena>. Sin embargo, 4.0 se lanzó en abril de 2010, antes de que esta pregunta y respuesta fueran publicadas, por lo que tal vez la gente aquí todavía no lo sabía (aparte de algunas de las siguientes)
Andrew Steitz,
Para vb.net, Dim combindedString As String = String.Join (",", myList.ToArray ())
PartTimeNerd
55
Voy a seguir mi instinto y asumir que quieres concatenar el resultado de llamar ToStringa cada elemento de la lista.
El .ToString()método para los tipos de referencia generalmente se resuelve a System.Object.ToString()menos que lo anule en un tipo derivado (posiblemente utilizando métodos de extensión para los tipos integrados). El comportamiento predeterminado para este método es mostrar el nombre del tipo en el que se llama. Entonces, lo que estás viendo es el comportamiento esperado.
Podrías intentar algo como string.Join(", ", myList.ToArray());lograr esto. Es un paso adicional, pero se podría poner en un método de extensión System.Collections.Generic.List<T>para hacerlo un poco más fácil. Algo como esto:
(Tenga en cuenta que este es un código libre y no probado. No tengo un compilador a mano en este momento. Por lo tanto, querrá experimentar un poco con él).
Si usted está buscando para convertir los elementos de una lista en una cadena larga grande, hacer esto: String.Join("", myList). Algunas versiones anteriores del marco no le permiten pasar un IEnumerable como segundo parámetro, por lo que es posible que necesite convertir su lista en una matriz llamando a .ToArray ().
Respuestas:
Tal vez estás tratando de hacer
Puede reemplazar "," por el que desea dividir los elementos en la lista.
Editar : como se menciona en los comentarios, también puedes hacer
Referencia:
fuente
Voy a seguir mi instinto y asumir que quieres concatenar el resultado de llamar
ToString
a cada elemento de la lista.fuente
Podrías usar
string.Join
:El resultado sería:
Como alternativa
Environment.NewLine
, puede reemplazarlo con un separador de línea basado en cadenas de su elección.fuente
Si desea algo un poco más complejo que una simple unión, puede usar LINQ, por ejemplo
Tomará ["A", "B", "C"] y producirá "(a) (b) (c)"
fuente
String.Join(" ", myList)
oString.Join(" ", myList.ToArray())
. El primer argumento es el separador entre las subcadenas.Dependiendo de su versión de .NET, es posible que primero necesite usar ToArray () en la lista.
fuente
Tienes un
List<string>
- así que si quieres concatenarlos, algo así comofuncionaría (en .NET 4.0 al menos). El primer parámetro es el delimitador. Entonces también podría delimitar comas, etc.
También es posible que desee ver el uso de StringBuilder para ejecutar concatenaciones, en lugar de formar una lista.
fuente
El
.ToString()
método para los tipos de referencia generalmente se resuelve aSystem.Object.ToString()
menos que lo anule en un tipo derivado (posiblemente utilizando métodos de extensión para los tipos integrados). El comportamiento predeterminado para este método es mostrar el nombre del tipo en el que se llama. Entonces, lo que estás viendo es el comportamiento esperado.Podrías intentar algo como
string.Join(", ", myList.ToArray());
lograr esto. Es un paso adicional, pero se podría poner en un método de extensiónSystem.Collections.Generic.List<T>
para hacerlo un poco más fácil. Algo como esto:(Tenga en cuenta que este es un código libre y no probado. No tengo un compilador a mano en este momento. Por lo tanto, querrá experimentar un poco con él).
fuente
Es difícil saberlo, pero quizás estés buscando algo como:
Esto llamará implícitamente al método ToString () en cada uno de los elementos de la lista y los concatenará.
fuente
String.Concat()
logrará lo mismo mejor.Si usted está buscando para convertir los elementos de una lista en una cadena larga grande, hacer esto:
String.Join("", myList)
. Algunas versiones anteriores del marco no le permiten pasar un IEnumerable como segundo parámetro, por lo que es posible que necesite convertir su lista en una matriz llamando a .ToArray ().fuente
La respuesta directa a su pregunta es
String.Join
como otros han mencionado.Sin embargo, si necesita algunas manipulaciones, puede usar
Aggregate
:fuente
Este método me ayudó cuando intenté recuperar datos del archivo de texto y almacenarlos en una matriz, luego asignarlos a una cadena disponible.
Ojalá pueda ayudar a alguien !!!!
fuente
Esto parece funcionar para mí.
fuente
todas las respuestas anteriores NO funcionan para listas anidadas.
fuente