¿Hay alguna forma de tomar una lista y convertirla en una cadena separada por comas?
Sé que puedo hacer un bucle y construirlo, pero de alguna manera creo que algunos de ustedes son una forma más genial de hacerlo.
Realmente quiero aprender este tipo de 'trucos', así que explique o enlace a los documentos sobre el método que usa.
c#
collections
mrblah
fuente
fuente
La solución simple es
Lo usé hace un momento en mi código, funcionando en funtastic.
fuente
fuente
Para obtener aproximadamente un millón de soluciones a una versión un poco más complicada de este problema, muchas de las cuales son lentas, con errores o ni siquiera se compilan, consulte los comentarios de mi artículo sobre este tema:
http://blogs.msdn.com/ericlippert/archive/2009/04/15/comma-quibbling.aspx
y el comentario de StackOverflow:
El desafío de Eric Lippert "sutilezas por comas", ¿la mejor respuesta?
fuente
Para mayor frescura, haría de este un método de extensión en IEnumerable <T> para que funcione en cualquier IEnumerable:
Úselo de la siguiente manera:
fuente
return string.Join(delim, self);
Parece razonablemente rápido.
fuente
Mi entrada "inteligente":
Simplemente no he descubierto cómo agregar condicionalmente la coma.
fuente
Select
con efectos secundarios en la lambda. En este caso, ni siquiera está utilizandoy
, por lo que suSelect
es esencialmente unforeach
- así que escríbalo como tal.Select
comoforeach
va más allá de "interesante" y en, bueno, "abuso". Un enfoque más interesante aquí sería usarEnumerable.Aggregate
conStringBuilder
como valor inicial; inténtelo.puede utilizar, la biblioteca System.Linq; Es más eficiente:
fuente