Скажем, что для целей отладки я хочу быстро получить содержимое IEnumerable в однострочную строку с каждым разделенным запятой строкой. Я могу сделать это в вспомогательном методе с циклом foreach, но это не весело и не кратковременно. Можно ли использовать Linq? Какой-то другой короткий путь?
Как преобразовать IEnumerable <string> в одну строку, разделенную запятой?
Ответ 1
using System;
using System.Collections.Generic;
using System.Linq;
class C
{
public static void Main()
{
var a = new []{
"First", "Second", "Third"
};
System.Console.Write(string.Join(",", a));
}
}
Ответ 2
string output = String.Join(",", yourEnumerable);
String.Join Method (String, IEnumerable
Объединение элементов построенной коллекции IEnumerable тип String, используя указанный разделитель между каждым элементом.
Ответ 3
collection.Aggregate("", (str, obj) => str + obj.ToString() + ",");
Ответ 4
IEnumerable<string> foo =
var result = string.Join( ",", foo );
Ответ 5
чтобы присоединиться к большому массиву строк к строке, напрямую не использовать +, использовать StringBuilder для итерации один за другим или String.Join одним выстрелом.
Ответ 6
(а) Установите IEnumerable:
// In this case we are using a list. You can also use an array etc..
List<string> items = new List<string>() { "WA01", "WA02", "WA03", "WA04", "WA01" };
(б) Соединить IEnumerable Вместе в строку:
// Now let us join them all together:
string commaSeparatedString = String.Join(", ", items);
// This is the expected result: "WA01, WA02, WA03, WA04, WA01"
(c) Для целей отладки:
Console.WriteLine(commaSeparatedString);
Console.ReadLine();