|
|
1
54
在.NET2.0中,它使用
在2.0中
但在4.0中,它看起来是这样的:
很明显,它是从使用
编辑:更新了答案以反映.NET4中的变化(我只是刚刚发现)。 |
|
2
31
公认的答案与标准差了一英里。重大变化
(这是一个昂贵的操作,因为除了分配更多内存外,还必须将所有内容从旧缓冲区复制到新缓冲区) .
here
. 结论呢?新的链表
|
|
|
3
7
不是真的-它使用内部字符缓冲区。只有当缓冲区容量耗尽时,它才会分配新的缓冲区。Append操作将简单地添加到此缓冲区,当调用ToString()方法时将创建string对象—从今往后,建议对许多字符串进行串联,因为每个传统的字符串concat操作将创建新的字符串。如果您对字符串生成器有粗略的了解,还可以指定其初始容量,以避免多次分配。 编辑 :人们指出我的理解是错误的。 |
|
|
4
3
我制作了一个小示例来演示StringBuilder如何在.NET4中工作。合同是
此代码不是线程安全的,不进行任何输入验证,也不使用系统字符串. 不过,它确实演示了StringBuilder类背后的思想。 一些单元测试和完整的示例代码可以在 github |
|
|
5
2
如果我在.NET 2上查看.NET Reflector,我会发现:
除了在.NET 4中它是
|
|
|
6
2
如果您想查看其中一个可能的实现(类似于microsoft实现v3.5之前的版本) the source of the Mono one 在github上。 |
|
Ben · 统计向量中的单词在字符串中出现的频率 9 月前 |
|
Haru Hoshizora · 为什么一个整数的位置没有改变,但值却不同 11 月前 |
|
|
bear_525 · 从列中删除中间名和首字母,并保存在单独的列中 11 月前 |
|
|
asdfadf · 为什么具有相同内存值的字符串和整数打印方式不同? 11 月前 |
|
|
user764754 · 防止多行原始字符串文字中出现新行字符 11 月前 |
|
|
Bogaso · 从列表中返回与模式匹配的元素 11 月前 |
|
|
Jasco · 如何使用VBA提取两个相似字符之间的字符串中的单词? 11 月前 |