C# 中 String 和 StringBuilder 之间的区别

本文关键字:之间 区别 StringBuilder String | 更新日期: 2023-09-18 11:26:19

在 C# 中,stringStringBuilder 都用于表示文本。但是,它们之间有一个关键区别。

在 C# 中,字符串是不可变的。这意味着字符串一旦创建就无法更改。例如,新字符串"Hello World!"将占用堆上的内存空间。现在,将初始字符串"Hello World!"更改为"Hello World!来自教程老师"将在内存堆上创建一个新的字符串对象,而不是修改相同内存地址的原始字符串。如果通过在原始字符串中替换、追加、删除或插入新字符串来多次修改字符串,则会影响性能。

例如,当您将值连接到该字符串对象时,以下内容将创建一个新的字符串对象。

示例: String

string greeting = "Hello World!";
greeting += " from Tutorials Teacher."; // creates a new string object

相比之下,StringBuilder 是可变类型。这意味着您可以修改其值,而无需每次都创建新对象。

示例: StringBuilder

StringBuilder sb = new StringBuilder("Hello World!");
sb.Append("from Tutorials Teacher."); //appends to the same object

如果多次修改字符串值,则StringBuilder的执行速度比字符串快。如果修改字符串值的次数超过五次,则应考虑使用StringBuilder而不是字符串。