2016-06-28 3 views
1

У меня есть StringBuilder, и я пытаюсь добавить параметры из нескольких списков, как это:StringBuilder добавить форму из нескольких массивов

var sb = new StringBuilder(); 
var list1 = new List<string>() { "a", "b", "c" } 
var list2 = new List<string>() { "d", "e" } 
sb.AppendFormat(" {0}, {1}, {2}, {3}, {4} ", list1, list2); 

я получаю исключение:

Index (с нуля) должен быть больше или равен нулю и меньше , чем размер списка аргументов.

Что я сделал, чтобы сделать его работу, это создать временный список

var temp = new List<string>(); 
temp.AddRange(list1); 
temp.AddRange(list2); 
sb.AppendFormat(" {0}, {1} ,{2} ,{3} ,{4} ", new List().Add); 

Есть ли более элегантный способ сделать это?

ответ

8

Вы можете сделать что-то же просто, как это:

var result = string.Join(",", list1.Concat(list2)); 

Вы можете добавить это в строку строитель, как это:

sb.Append(result); 
0

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

var sb = new StringBuilder(); 
var list1 = new List<string>() {"a", "b", "c"}; 
var list2 = new List<string>() {"d", "e"}; 
sb.AppendFormat(" {0}, {1}, {2}, {3}, {4} ", list1.Concat(list2).ToArray()); 
Console.WriteLine(sb.ToString()); 

 Смежные вопросы

  • Нет связанных вопросов^_^