性能StringBuilder插入与字符串Concat

Chr*_*ann 4 .net c# string stringbuilder

将字符串添加到另一个字符串的性能更高效?

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

messageString.Insert(0, prependedString);
Run Code Online (Sandbox Code Playgroud)

要么

string.Concat(prependedString, messageString);
Run Code Online (Sandbox Code Playgroud)

在我的情况下,消息字符串相对较大,前置字符串很短.

usr*_*usr 7

string.Concat如果项目数量是固定的,这是最快的方法.在所有情况下都适用这种说法.字符串有多长并不重要.

string.Concat计算最终的字符串大小,然后将这些位复制到一个新分配的字符串中.它不能更快​​地完成.

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

对于大字符串使用字符串构建器

假.那为什么会这样?!

如果您正在使用StringBuilder连接两个以上的字符串

假.如果数字是固定的,请使用Concat.StringBuilder只会增加你的开销.

答案取决于你连接的字符串数量,以及它们的大小

假.我上面描述的算法始终是最快的解决方案.

StringBuilder的神话是一个惊人的变化.如果您了解这两个选项如何在内部工作,您可以自己回答所有这些问题.我没有研究和记住所有这些答案.我根据对内部的理解来生成它们.