web-dev-qa-db-fra.com

C # Liste <chaîne> en chaîne avec un délimiteur

Existe-t-il une fonction en C # permettant de convertir rapidement une collection en chaîne et en séparant les valeurs avec un délimiteur?

Par exemple:

List<string> names -> string names_together = "John, Anna, Monica"

543
nan

Vous pouvez utiliser String.Join . Si vous avez un _List<string>_, vous pouvez appeler ToArray d’abord:

_List<string> names = new List<string>() { "John", "Anna", "Monica" };
var result = String.Join(", ", names.ToArray());
_

Dans .NET 4, vous n'avez plus besoin de ToArray, car il existe une surcharge de _String.Join_ qui prend un _IEnumerable<string>_.

1020
Quartermeister

Vous pouvez également le faire avec linq si vous le souhaitez.

var names = new List<string>() { "John", "Anna", "Monica" };
var joinedNames = names.Aggregate((a, b) => a + ", " + b);

Bien que je préfère la syntaxe non-linq dans la réponse de Quartermeister, je pense que Aggregate pourrait fonctionner plus lentement (probablement davantage d'opérations de concaténation de chaînes).

80
Bob