c#中的string和stringbuilder有什么区别
What is the difference bewteen the string and string builder in c#
在 C# 中,String
和 StringBuilder
之间有显着差异吗?您什么时候会使用一个而不是另一个?
示例:
使用字符串 string stringVal = "Hello World!"
或者我们可以使用 StringBuilder
StringBuilder sbMyValue = new StringBuilder("");
sbMyValue.Append("Hello World");
这篇文章巧妙地解释了两者之间的区别:link
总结:
字符串
String
是不可变的,不可变意味着如果你创建了字符串对象那么你就不能修改它并且它总是在内存中创建新的字符串类型的对象。
字符串生成器
StringBuilder
是可变的,意味着如果创建字符串生成器对象,那么您可以执行任何操作,如插入、替换或追加,而无需为每个 time.it 创建新实例,将在内存中的一个位置更新字符串不会在内存中创建新的 space。
因此,字符串生成器在连接时节省了大量内存。
StringBuilder
是可变的,当您需要多次操作内容时可以提供更好的性能。
在string
的情况下,它必须多次创建实例,因为字符串是不可变的。
在 C# 中,String
和 StringBuilder
之间有显着差异吗?您什么时候会使用一个而不是另一个?
示例:
使用字符串 string stringVal = "Hello World!"
或者我们可以使用 StringBuilder
StringBuilder sbMyValue = new StringBuilder("");
sbMyValue.Append("Hello World");
这篇文章巧妙地解释了两者之间的区别:link
总结:
字符串
String
是不可变的,不可变意味着如果你创建了字符串对象那么你就不能修改它并且它总是在内存中创建新的字符串类型的对象。
字符串生成器
StringBuilder
是可变的,意味着如果创建字符串生成器对象,那么您可以执行任何操作,如插入、替换或追加,而无需为每个 time.it 创建新实例,将在内存中的一个位置更新字符串不会在内存中创建新的 space。
因此,字符串生成器在连接时节省了大量内存。
StringBuilder
是可变的,当您需要多次操作内容时可以提供更好的性能。
在string
的情况下,它必须多次创建实例,因为字符串是不可变的。