首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在web应用中使用StringBuilder值得吗?

在web应用中使用StringBuilder值得吗?
EN

Stack Overflow用户
提问于 2009-01-22 21:46:23
回答 6查看 1K关注 0票数 2

在web应用程序中,我拆分字符串,并将其分配给链接名称或字符串集合。在web应用程序中使用stringbuilder是否有显著的性能优势?

编辑:2个功能:将一个链接拆分为5-10个字符串。THen重新打包到另一个字符串中。另外,每次单击链接时,我都会将一个字符串附加到该链接。

EN

回答 6

Stack Overflow用户

回答已采纳

发布于 2009-01-22 21:51:33

您将连接多少个字符串?你确定会有多少条记录,还是取决于数据库中有多少条记录等等?

有关更多细节和指导原则,请参阅my article on this subject -但基本上,在web应用程序中使用字符串连接与使用StringBuilder的代价没有什么不同。

编辑:恐怕从这个问题中还不能完全清楚你到底在做什么。如果您有一组固定的字符串要连接,并且可以一次完成所有这些操作,那么使用连接会更快,而且可能更具可读性。例如:

代码语言:javascript
复制
string faster = first + " " + second + " " + third + "; " + fourth;

string slower = new StringBuilder().Append(first)
                                   .Append(" ")
                                   .Append(second)
                                   .Append(" ")
                                   .Append(third)
                                   .Append("; ")
                                   .Append(fourth)
                                   .ToString();

当然,另一种选择是使用格式化字符串。这可能是最慢的,但可读性最强的:

代码语言:javascript
复制
 string readable = string.Format("{0} {1} {2}; {3}",
                                 first, second, third, fourth);

你的问题中提到“每次添加一个链接”的部分建议使用StringBuilder -任何自然地导致循环的东西都使用StringBuilder更有效(对于中等到大量的数字)。

票数 12
EN

Stack Overflow用户

发布于 2009-01-22 21:49:53

是的,连接常规字符串的开销很大(实际上是将字符串附加到另一个字符串的末尾)。每次字符串发生更改时,.net都会删除旧字符串,并使用新值创建一个新字符串。它是一个不可变的对象。

编辑:

Stringbuilder应该谨慎使用,并像任何其他方法一样进行评估。有时,将两个字符串连接在一起会更有效率,应该根据具体情况进行评估。

Atwood has an interesting article related to this.

票数 4
EN

Stack Overflow用户

发布于 2009-01-22 21:52:07

您应该看看this excellent article by Jon Skeet中有关连接字符串的内容。

票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/470944

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档