StringBuilder.Append用于字符串数组?

时间:2012-03-26 09:38:31

标签: c# stringbuilder

说我有一个StringBuilder对象

var sb = new StringBuilder();

一个字符串的arbritrary

var s = new []{"a","b","c"};

这是将它们插入stringbuilder实例的“最快”方法吗?

sb.Append(string.join(string.empty, s));

或者StringBuilder是否有我忽略的功能?

编辑:对不起我不知道sb将包含多少项,或者每个字符串[]中可能有多少项。

5 个答案:

答案 0 :(得分:7)

如果你的意思是“最快”,那么表现最佳,而不是更好地使用:

for(int i = 0; i < myArrayLen; i++)
  sb.Append(myArray[i]);

答案 1 :(得分:1)

string.Concat(...)应该比string.Join("", ...)更快。此外,这取决于您使用StringBuilder做了什么。如果你只是执行一些连接,那么不使用它会更快。

更多上下文总是有帮助!

答案 2 :(得分:1)

信不信由你,但当字符串为4/5时,string.Concat比StringBuilder更快 This article很好地讨论了这个问题。

答案 3 :(得分:-1)

要在没有循环的一行中执行此操作,您可以执行此操作:

sb.Append(String.Join(Environment.NewLine, s));

并且也适用于s是任何类型的

IEnumerable<string>

答案 4 :(得分:-2)

我相信你已经有了正确的答案:

sb.Append(string.join(string.empty, s))