性能StringBuilder插入与字符串Concat
本文关键字:字符串 Concat 插入 StringBuilder 性能 | 更新日期: 2023-09-27 18:14:40
将一个字符串添加到另一个字符串中,哪种方法在性能上更有效?
使用StringBuilder.Insert
法还是string.Concat
法?
messageString.Insert(0, prependedString);
或
string.Concat(prependedString, messageString);
在我的例子中,消息字符串相对较大,前置字符串较短。
string.Concat
是固定项目数量下最快的方法。这句话在所有情况下都成立。不管字符串有多长
string.Concat
计算最终的字符串大小,然后将这些位复制到新分配的字符串中。它不能做得更快。
实际上,您应该写a + b
而不是调用Concat
(如果在特定情况下可能的话)。
对于大字符串使用string builder
假。为什么会这样?!
如果要连接两个以上的字符串,请使用StringBuilder
假。如果号码是固定的,则使用Concat。StringBuilder除了增加开销之外没有给你带来任何好处。
答案取决于你要连接多少个字符串,以及它们有多大
假。我上面描述的算法总是最快的解决方案。
关于StringBuilder的神话是一个惊人的多样性。如果你了解这两种选择的内在原理,你就可以自己回答所有这些问题。我没有学习和记忆所有这些答案。
这是如何明智地使用StringBuilder的副本,您可以在那里阅读我的完整答案,简而言之:
Concat
函数比StringBuilder
函数更快,因为进入函数的字符串数量是已知的。