String / StringBuilder 你使用的体积是多少

发布于 2024-08-09 16:49:39 字数 264 浏览 7 评论 0原文

现在是周五重构时间!!!

我有一个用于生成 SQL 语句的对象。

oDb.From 设置一次。然后元数据可能会随着时间的推移添加连接,直到我们将其全部组合起来并将其传回。

所以问题是,在用 sbFrom.Append() 替换语法 oDb.From += 之前,我保留语法 oDb.From += 的次数是多少次?

是 3 次、4 次还是 15 次?

或者这确实是内容长度问题,如果是的话,神奇的#是什么?

TIA

It's Friday refactor time!!!

I have an object that I use to generate SQL statements.

oDb.From is set once. Then meta data may add join(s) over time till we combine it all and pass it back.

So the Q is, What # of times do I keep syntax oDb.From += before I replace it with sbFrom.Append()

Is that # 3, 4, or 15 times?

Or is it really a length of content issue, and if so what is the magical #?

TIA

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(6

听你说爱我 2024-08-16 16:49:39

完全不科学的经验法则:我会为了超过三个要素而这样做 - 不是因为性能提高,而是出于(希望)良好的习惯。

Totally unscientific rule of thumb: I'd do it for anything over three elements - not because of performance increase, but rather out of (hopefully) good habit.

美煞众生 2024-08-16 16:49:39

阅读http://www.codinghorror.com/blog/archives/001218.html

StringBuilder 类是为构建庞大字符串的场景而设计的,使用普通字符串连接确实会太慢。

很可能,对于您正在处理的字符串长度,它实际上根本不会产生任何影响 - 只需使用您最舒服的任何长度即可。

Read http://www.codinghorror.com/blog/archives/001218.html

The StringBuilder class is designed for scenarios where you are constructing mammoth strings, and using normal string concatenation really would be too slow.

The chances are that for the sort of string lengths that you are dealing with it really wont make any difference at all - just use whatever you are most comfortable with.

心作怪 2024-08-16 16:49:39

如果我必须向字符串追加两个以上的元素,我几乎总是使用 StringBuilder (我发现,如果我追加两个以上的元素,随着人们开始添加到我的代码中,不可避免地会出现更多元素......所以 StringBuilder 已经存在了他们)。

If I have to append more than two elements to a String, I almost always use StringBuilder (I find that if I append more than two, there will inevitably be more as people start adding to my code...so StringBuilder is already there for them).

绝影如岚 2024-08-16 16:49:39

我会说任何你期望长度超过 1-5MB 的东西,或者任何以小块分配大量字符串的东西。

I'd say anything you expect to go over 1-5MB in length or anything that allocations lots of strings in little chunks.

千纸鹤 2024-08-16 16:49:39

这并不是完全不科学 - 我曾经读过一篇文章,其中 .NET 字符串生成器实际上在 5 次串联后变得更加高效。这是我通常使用字符串生成器的时候。

另外 - 我认为可读性确实在这方面发挥了作用,并且在某些情况下我也更喜欢字符串格式。

It's not a total unscientific - I read an article once upon a time where in .NET string builder actually becomes more efficient after 5 concatenations. This is when I typically use a String Builder.

Also - I think readability really comes into play regarding this and I also prefer string format in some cases over both.

醉态萌生 2024-08-16 16:49:39

当算法中的串联数量超过 O(n) 时,我会使用 StringBuilder。
如果串联次数为 O(1),大多数情况下可读性不会受到影响(除非字符串非常大,但这种情况并不常见)。

或者当我知道有一个字符串会变得足够大时。 (超过10万个字符)

I use StringBuilder when the number of concatenation in an algorithm grow over O(n).
If the number of concatenation is O(1), most of the time readability suffer for nothing(Except if the string is very large, which is not very often).

Or when I know that there is a string that will become large enough. (More than 100k char)

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文