性能StringBuilder插入与字符串Concat

本文关键字:字符串 Concat 插入 StringBuilder 性能 | 更新日期: 2023-09-27 18:14:40

将一个字符串添加到另一个字符串中,哪种方法在性能上更有效?

使用StringBuilder.Insert法还是string.Concat法?

messageString.Insert(0, prependedString);

string.Concat(prependedString, messageString);

在我的例子中,消息字符串相对较大,前置字符串较短。

性能StringBuilder插入与字符串Concat

string.Concat是固定项目数量下最快的方法。这句话在所有情况下都成立。不管字符串有多长

string.Concat计算最终的字符串大小,然后将这些位复制到新分配的字符串中。它不能做得更快。

实际上,您应该写a + b而不是调用Concat(如果在特定情况下可能的话)。

对于大字符串使用string builder

假。为什么会这样?!

如果要连接两个以上的字符串,请使用StringBuilder

假。如果号码是固定的,则使用Concat。StringBuilder除了增加开销之外没有给你带来任何好处。

答案取决于你要连接多少个字符串,以及它们有多大

假。我上面描述的算法总是最快的解决方案。

关于StringBuilder的神话是一个惊人的多样性。如果你了解这两种选择的内在原理,你就可以自己回答所有这些问题。我没有学习和记忆所有这些答案。

这是如何明智地使用StringBuilder的副本,您可以在那里阅读我的完整答案,简而言之:

Concat函数比StringBuilder函数更快,因为进入函数的字符串数量是已知的。