Добавить элементы списка в StringBuilder

Я попытался добавить элементы из List<string> в StringBuilder с помощью LINQ:

items.Select(i => sb.Append(i + ","));

Я нашел аналогичный вопрос здесь, который объясняет, почему выше не работает, но я не смог найти Each из ForEach или что-то похожее на List, которое я мог бы использовать вместо этого.

Есть ли аккуратный способ сделать это в однострочном режиме?


person fearofawhackplanet    schedule 24.11.2010    source источник
comment
Какую версию .Net вы используете? ForEach — это метод из общего списка в .Net 4.   -  person Jon Mitchell    schedule 24.11.2010
comment
да, я .Net 3.5, к сожалению   -  person fearofawhackplanet    schedule 24.11.2010


Ответы (3)


Вы можете использовать простой цикл foreach. Таким образом, у вас есть операторы, которые изменяют StringBuilder, вместо использования выражения с побочными эффектами.

И, возможно, вашу проблему лучше решить с помощью String.Join(",", items).

person CodesInChaos    schedule 24.11.2010
comment
Я совсем забыл о String.Join. Иногда мне действительно нужно вырваться из своего Linq wankathon и вспомнить, как люди программировали раньше :) - person fearofawhackplanet; 24.11.2010

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

 String [] items={"Jan","Feb","Mar"};
 StringBuilder sb=new StringBuilder();
 foreach(var entity in items)
 {
   sb.Append(entity + Environment.NewLine);
 }
 Textbox1.Text=sb.tostring();

Выход:

Ян

февраль

март

person Maghalakshmi Saravana    schedule 24.12.2019

person    schedule
comment
Обратите внимание, что вы должны придерживаться списка T›, а не IList‹T›, где это расширение больше недоступно. Вот почему я предпочитаю писать свой собственный ForEach, который работает с IEnumerable‹T›. - person Tigraine; 24.11.2010