为什么字符串出了名的昂贵

Gre*_*g B 2 c# string

字符串的实现方式是什么让它们操作起来如此昂贵?

是否不可能制作"廉价"的字符串实现?

或者我的理解完全错了?

谢谢

Rob*_*les 22

哪种语言?

字符串通常是不可变的,这意味着对数据的任何更改都会导致正在创建的字符串的新副本.这可能会对大字符串产生性能影响.

但是,这是一个重要的功能,因为它允许进行优化,例如实习.实习通过将相同的字符串指向同一数据副本来减小文本数据的大小.

如果您担心字符串的性能,请使用StringBuilder(可在C#和Java中使用)或其他与可变文本数据一起使用的构造.

如果您正在处理大量文本数据并需要强大的字符串解决方案,同时仍然节省空间,请查看使用绳索.