可能的重复:
字符串与 StringBuilder
我刚刚重温了一些我用来学习 VB.NET 的书籍。我不确定我是否已经理解了这一点,了解 StringBuilder 是如何/什么的。
使用指导是什么?如果您要连接 2 个字符串还是 50 个字符串,最好使用它吗?
或者当字符串总长度大于128个字符时?
或者,每当您使用它来将字符串添加在一起时,您是否会看到性能优势?
在这种情况下,使用 StringBuilder 实例构建 SQL 语句比使用 StringBuilder 实例更好string.format("Select * from x where y = {0}",1)
?
我总是觉得声明另一个变量并包含名称空间对于小字符串连接没有好处,但我现在不确定。
抱歉,很多文档告诉您应该使用什么,但没有告诉您什么是最好的。
我有一个关于这个主题的文章。总之(从页面底部复制):
- 当您在一个重要的循环中进行连接时,一定要使用 StringBuilder - 特别是如果您不确定(在编译时)将在循环中进行多少次迭代。例如,一次读取文件一个字符,使用 += 运算符构建字符串可能是性能自杀。
- 当您可以(可读地)指定需要在一条语句中连接的所有内容时,一定要使用连接运算符。 (如果您有一个要连接的数组,请考虑显式调用 String.Concat - 如果需要分隔符,请考虑调用 String.Join。)
- 不要害怕将文字分成几个串联的位 - 结果将是相同的。例如,您可以通过将长文字分成几行来提高可读性,而不会损害性能。
- 如果您需要连接的中间结果而不是提供下一次连接迭代,那么 StringBuilder 将无法帮助您。例如,如果您从名字和姓氏建立一个全名,然后在末尾添加第三条信息(也许是昵称),那么只有在不这样做的情况下,您才会从使用 StringBuilder 中受益需要 (名字 + 姓氏) 字符串用于其他目的(就像我们在创建 Person 对象的示例中所做的那样)。
- 如果您只需要进行一些串联,并且您确实想在单独的语句中进行这些操作,那么采用哪种方式并不重要。哪种方式更有效取决于连接的数量、所涉及的字符串的大小以及连接的顺序。如果您确实认为该代码段是性能瓶颈,请对它进行分析或基准测试。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)