c# - C#将新文本添加到字符串而不复制它以前的值
问题描述
例如,我有需要与另一个字符串组合的字符串
string string1 = "cars"; // the text is just for example
string string2 = "white";
// then
string string1 = string1 + string2;
// or
string string1 += string2;
好吧,乍一看没问题吧?NOPE,确实有问题
当string.length
/ 字符串包含很多字符时,例如当它包含 100.000 个单词时,当我将它放在循环中时它开始变得迟钝或冻结,因为它需要从另一个字符串中复制 100.000 个单词加单词,每次它组合 string1与 string2 。
是否有任何替代方法可以将新文本添加到包含大量单词的字符串中?
解决方案
在 c# 中累积字符串的正确方法是使用StringBuilder
. 例子:
StringBuilder sb = new StringBuilder();
sb.Append("...");
sb.Append("...");
....
var result = sb.ToString()
您的解决方案似乎滞后,因为每次您“修改”一个字符串时都会创建一个全新的字符串,所以垃圾收集器有点疯狂......
推荐阅读
- unit-testing - 如何查看测试和断言的数量
- jquery - 对 ASP.Net MVC 验证进行故障排除?电子邮件验证电话不
- java - 来自单应性opencv的旋转和平移矩阵
- javascript - jQuery:淡出,更改背景图像,然后淡入
- arduino - Arduino 到 PC 通信
- ms-access - 从表单更新非当前记录
- css - 根据列宽添加新的拟合行?
- javascript - 如何对依赖于复杂 Vuex 存储并扩展另一个组件的 Vue.js 组件进行单元测试?
- java - Android Studio“变量'示例'可能尚未初始化”现在该怎么办?
- matlab - 带嵌套积分的数值积分