Преобразовать комбинированный список в разделенную запятыми строку в c # - PullRequest
0 голосов
/ 21 февраля 2019

Мой код выглядит следующим образом:

List<string> colorList = new List<string>();

....

sCombo = reader["Combo"].ToString();
colorList.Add(sCombo.ToString());

....


foreach (var Combo in colorList)
{
   Response.Write(string.Join(",", Combo));
} 

Вывод: D410D430D440D420 вместо D410,D430,D440,D420

Какой самый простой способ преобразовать List<string> в запятую?отдельная строка?

РЕДАКТИРОВАТЬ # 01

Ваше предложение работает, но мне нужен этот новый вывод:

'D410','D430','D440','D420' 

Потому что используйте это stringна sql запрос.

Спасибо

Ответы [ 3 ]

0 голосов
/ 21 февраля 2019

Я думаю, это было бы очень удобно

var colorList = new List<string>() { "D410", "D430", "D440", "D420" };
string commaSeparated = string.Join(",", colorList);                      
Console.WriteLine(commaSeparated);

или попробуйте решение на основе Linq

Console.WriteLine(colorList.Select(s => s + ",").Aggregate((s, q) => s + q).TrimEnd(','));

Вывод

D410,D430,D440,D420

Редактировать

string result = string.Join(",", colorList.Select(e => "'" + e + "'"));
Console.WriteLine(result);

даст вам

'D410','D430','D440','D420'
0 голосов
/ 21 февраля 2019

Вам нужно вывести вот так => 'D410','D430','D440','D420'

Так что попробуйте ниже,

string result = string.Join(",", colorList.Select(x => $"'{x}'"));
Response.Write(result);

Что мы сделали выше?

Ответ: Сначала мы сглаживаем каждый элемент в вашем списке строкой, заключенной в одинарные кавычки (''), а затем просто передаем этот недавно сгенерированный результат сглаживания методу объединения с запятой (,)чтобы получить желаемый результат.

Вывод: (из отладчика)

enter image description here

0 голосов
/ 21 февраля 2019

без foreach:

Response.Write(string.Join(",", colorList));
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...