2016-06-28 57 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); 

我得到一個異常:

索引(從零開始)必須大於或等於零且小於參數列表的大小 。

我做了什麼,使其工作是創建一個臨時列表

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());