C # List <string>в строку с разделителем - PullRequest
526 голосов
/ 26 августа 2010

Есть ли в C # функция для быстрого преобразования некоторой коллекции в строку и разделения значений с помощью разделителя?

Например:

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

Ответы [ 2 ]

987 голосов
/ 26 августа 2010

Вы можете использовать String.Join. Если у вас есть List<string>, вы можете сначала позвонить ToArray:

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

В .NET 4 вам больше не нужен ToArray, поскольку существует перегрузка String.Join, которая занимает IEnumerable<string>.

77 голосов
/ 26 августа 2010

Вы также можете сделать это с помощью linq, если хотите

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

Хотя я предпочитаю синтаксис non-linq в ответе Quartermeister и думаю, что Aggregate может работать медленнее (возможно, больше операций конкатенации строк).

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...