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