将字符串添加到另一个字符串的性能更高效吗?
使用StringBuilder.Insert方法还是string.Concat方法?
messageString.Insert(0, prependedString);
或
string.Concat(prependedString, messageString);
在我的情况下,消息字符串相对较大,前缀字符串很短。
答案 0 :(得分:7)
string.Concat
是最快的方法。在所有情况下都适用这种说法。字符串有多长并不重要。
string.Concat
计算最终字符串大小,然后将这些位复制到新分配的字符串中。它不能更快地完成。
实际上,您应该编写a + b
而不是调用Concat
(如果在特定情况下可以这样做)。
对于大字符串使用字符串构建器
假。为什么会这样?!
如果您正在使用StringBuilder
连接两个以上的字符串
假。如果数字是固定的,请使用Concat。 StringBuilder只会增加你的开销。
答案取决于你连接的字符串数量,以及它们的大小
假。我上面描述的算法总是最快的解决方案。
StringBuilder周围的神话是一个惊人的变化。如果您了解这两个选项如何在内部工作,您可以自己回答所有这些问题。我没有研究和记住所有这些答案。我根据对内部的理解来生成它们。
答案 1 :(得分:3)
这是How to use StringBuilder Wisely的副本,您可以在那里阅读我的完整答案,简而言之:
Concat
函数比使用StringBuilder
更快,因为已知进入该函数的字符串数。