StringBuilder.Append用于字符串数组

本文关键字:数组 字符串 用于 Append StringBuilder | 更新日期: 2023-09-27 18:28:56

假设我有一个StringBuilder对象

var sb = new StringBuilder();

和字符串的数组

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

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

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

还是StringBuilder有一个我忽略了的功能?

编辑:对不起,我不知道sb将包含多少项,也不知道每个String[]中可能包含多少项。

StringBuilder.Append用于字符串数组

如果你的意思是"最快"的性能比更好的使用:

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

string.Concat(...)应该比string.Join("", ...)快。此外,这取决于您对StringBuilder的其他操作。如果你只执行一些串联,那么不使用它会更快。

更多的上下文总是有帮助的!

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

要在没有循环的情况下在一行中完成此操作,可以执行以下操作:

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

也适用于任何类型的

IEnumerable<string>

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

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