Creación de una lista separada por comas a partir de IList o IEnumerable
¿Cuál es la forma más limpia de crear una lista separada por comas de valores de cadena a partir de una IList<string>o
IEnumerable`?
El método String.Join(...)
opera sobre una cadena[]
por lo que puede ser complicado trabajar con tipos como IList<string>
o IEnumerable<string>
que no pueden convertirse fácilmente en una matriz de cadenas.
800
3
.NET 4+
Soluciones de detalle y pre .Net 4.0
IEnumerable
se puede convertir en un array de cadenas muy fácilmente con LINQ (.NET 3.5):Es bastante fácil escribir el método de ayuda equivalente si lo necesitas:
Entonces llámalo así:
A continuación, puede llamar a
string.Join
. Por supuesto, usted no tiene que utilizar un método de ayuda:Aunque esto último es un poco complicado :)
Esta es probablemente la forma más sencilla de hacerlo, y bastante performante también - hay otras preguntas acerca de cómo es exactamente el rendimiento, incluyendo (pero no limitado a) este.
A partir de .NET 4.0, hay más sobrecargas disponibles en
string.Join
, por lo que en realidad puedes simplemente escribir:Mucho más sencillo :)
puedes convertir el IList en un array usando ToArray y luego ejecutar un comando string.join en el array.
Puedes usar
.ToArray()
enListas
yIEnumerables
, y luego usarString.Join()
como quieras.