C#将新文本添加到字符串而无需复制它的先前值

0 c# string

例如,我有一个字符串需要与另一个字符串结合使用

string string1 = "cars"; // the text is just for example 
string string2 = "white";
// then
string string1 = string1 + string2;
// or
string string1 += string2;
Run Code Online (Sandbox Code Playgroud)

好吧,乍看没有问题吧?NOPE,确实有问题

string.length/字符串包含很多字符时(例如,当包含100.000 word时),当我将其放入循环中时,它开始变得迟钝或冻结,因为每次合并string1时,它需要从另一个字符串中复制100.000 word plus word与string2。

是否可以使用其他方法向包含大量单词的字符串添加新文本?

Fel*_*ano 6

在c#中累积字符串的正确方法是使用StringBuilder。例:

StringBuilder sb = new StringBuilder();
sb.Append("...");
sb.Append("...");
....
var result = sb.ToString()
Run Code Online (Sandbox Code Playgroud)

您的解决方案似乎滞后,因为每次您“修改”一个字符串时,都会创建一个全新的字符串,因此垃圾收集器变得有些疯狂...