Existe-t-il un moyen de prendre une liste et de la convertir en une chaîne séparée par des virgules?
Je sais que je peux juste faire une boucle et le construire, mais je pense que certains d'entre vous sont une façon plus cool de le faire?
Je veux vraiment apprendre ces types de «trucs», alors veuillez expliquer ou créer un lien vers la documentation sur la méthode que vous utilisez.
c#
collections
mrblah
la source
la source
La solution simple est
Je l'ai utilisé tout à l'heure dans mon code, fonctionnant de manière funtastique.
la source
la source
Pour environ un milliard de solutions à une version légèrement plus compliquée de ce problème - dont beaucoup sont lentes, boguées ou ne se compilent même pas - voir les commentaires de mon article sur ce sujet:
http://blogs.msdn.com/ericlippert/archive/2009/04/15/comma-quibbling.aspx
et le commentaire StackOverflow:
Le défi d'Eric Lippert "ergoter par la virgule", meilleure réponse?
la source
Pour plus de fraîcheur, je ferais de cette méthode une extension sur IEnumerable <T> afin qu'elle fonctionne sur n'importe quel IEnumerable:
Utilisez-le comme suit:
la source
return string.Join(delim, self);
Cela semble raisonnablement rapide.
la source
Mon entrée "intelligente":
Je n'ai simplement pas compris comment ajouter conditionnellement la virgule.
la source
Select
avec des effets secondaires dans le lambda. Dans ce cas, vous n'utilisez même pasy
, donc vous n'êtesSelect
essentiellement qu'unforeach
- alors écrivez-le comme tel.Select
commeforeach
ça passe "intéressant" et dans, eh bien, "abuser". Une approche plus intéressante ici serait d'utiliserEnumerable.Aggregate
avecStringBuilder
comme valeur de départ - essayez cela.vous pouvez utiliser, la bibliothèque System.Linq; C'est plus efficace:
la source