说我有一个StringBuilder
对象
var sb = new StringBuilder();
一个字符串的arbritrary
var s = new []{"a","b","c"};
这是将它们插入stringbuilder
实例的“最快”方法吗?
sb.Append(string.join(string.empty, s));
或者StringBuilder
是否有我忽略的功能?
编辑:对不起我不知道sb
将包含多少项,或者每个字符串[]中可能有多少项。
答案 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))