2014-01-14 6 views
1

Я пытаюсь создать строку из спискасписка Преобразовать в строку с одинарными кавычками

Это мой код

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

и я добавляю отдельные продавец из ListBox, как этот

foreach (ListItem lst in lstBoxSalesmen.Items) 
      { 
       if (lst.Selected) 
       { 

        SelectedSalesmen.Add(lst.Value); 
       } 
      } 

Наконец, я сохраняю это значение для строки, подобной этой

string SalesManCode = string.Join(",", SelectedSalesmen.ToArray()); 

Но я получаю как этот

SLM001,SLM002,SLM003 

, но мне нужно такой вывод

'SLM001','SLM002','SLM003' 
+0

(http://stackoverflow.com/questions/10076454/string-builder-vs-lists) –

+0

Помогает ли вам любой ответ? – wudzik

ответ

31

Попробуйте это:

string SalesManCode = string.Join(",", SelectedSalesmen 
              .Select(x=>string.Format("'{0}'",x))); 

будет обернуть все ваши элементы с ', а затем присоединиться их использование , в качестве разделителя

+0

Почему не этот ответ наверху? – Drakoumel

+1

в конце вам не хватает одной круглой скобки. – Drakoumel

+0

@ Drakoumel спасибо, отредактирован. – wudzik

2

Что об этом:

string output = "'" + string.Join("','", SelectedSalesmen) + "'"; 

Хотя это вернет '' для пустого ввода.

Но на самом деле, конкатенация строк не так уж трудна. Что вы пробовали?

+1

Трудное решение, я об этом не думал :) – wudzik

-2

вы можете сделать что-то вроде этого: [? Использование строки строителя и добавьте в этом, соответственно, поэтому использовать список]

"'" + string.Joing("',", SelectedSalesmen.ToArray() + "'"); 
+1

Это даст '' SLM001 ', SLM002', SLM003'. – CodeCaster

1

То же, что ответ от @wudzik но интерполяции строк

var salesManCode = string.Join(",", selectedSalesmen.Select(x => $"'{x}'")); 
Смежные вопросы