C# string 和 stringbuilder 的区别
C# string 和 stringbuilder 的区别
C# string 和 stringbuilder 的区别string 对象是不可改变的。每次使用 string 类中的方法之一或进行运算时(如赋值、拼接等)时,都要在内存中创建一个新的字符串对象,这就需要为该新对象分配新的空间。而 StringBuilder 则不会,在需要对字符串执行重复修改的情况下,与创建新的 string 对象相关的系统开销可能会非常昂贵。如果要修改字符串而不创建新的对象,则可以使用 System.Text.StringBuilder 类;例如,当在一个循环中将许多字符串连接在一起时,使用 StringBuilder 类可以提升性能。
如果不是频繁拼接的情况下,string的性能明显好于stringbuilder,如果频繁拼接就用stringbuilder,如果是展现那么用string。
例如下面的例子:
//则内存中存在了aa bb aabb 三个
string s="aa"; s +="bb";
//则内存中只有两个 "bb" "aabb" 此处少了一个"aa",其实是因为stringbuilder是可变的,"aa"变成了"aabb",而不是重新分配新空间。
stringbuilder ss="aa"; ss.Append("bb")。
StringBuilder表示可变字符字符串, 它允许我们有效的对字符串的字符执行动态操作,有效的缩减字符串的大小或者更改字符串中的字符。如果字符串变大,超过已经分配的字符的大小,StringBuilder就会自动的分配一个全新的、更大的数组,并开始使用新的数组,虽然 StringBuilder 对象是动态对象,允许扩充它所封装的字符串中字符的数量,但是您可以为它可容纳的最大字符数指定一个值。此值称为该对象的容量,不应将它与当前 StringBuilder 对象容纳的字符串长度混淆在一起。例如,可以创建 StringBuilder 类的带有字符串“Hello”(长度为 5)的一个新实例,同时可以指定该对象的最大容量为 25。当修改 StringBuilder 时,在达到容量之前,它不会为其自己重新分配空间。当达到容量时,将自动分配新的空间且容量翻倍.
- C#泛型List的用法
- C#中默认参数
- C#中float的取值范围和精度
- C# 获取磁盘空间大小
- C#获取页面的HTML
- C#中typeof 与GetType()的区别
- C#不建议在构造函数中调用虚方法或虚属性
- SQL SERVER数据类型对应C#的数据类型
- c语言获取系统日期函数(C# ling to sql 取多条记录最大时间)
- C#enum枚举
- C# Directory类的操作
- C# Windows服务的创建、安装、调试
- C#中is 运算符与as运算符的区别和作用
- C#中Dictionary的用法
- C#中的readonly和const关键字
- C# #define条件编译
- 越南新娘(越南新娘婚介网站)
- 越南新娘(越南新娘骗婚套路流程)
- 菲律宾游学(菲律宾游学中介机构)
- 菲律宾美食(菲律宾美食排行榜前十名)
- 菲律宾特产(菲律宾特产最值得买回国)
- 越南特产(越南特产首饰)
热门推荐
- python爬虫第一本书(我用Python抓取了7000 多本电子书案例详解)
- python简易版学生管理系统(python3.6实现学生信息管理系统)
- Extjs updateProgress进度条的应用
- iis服务器安装错误(IIS7.0配置过程中出现HTTP 错误 403.14的解决方法)
- 树莓派3B+安装64位ubuntu系统和docker工具的操作步骤详解(树莓派3B+安装64位ubuntu系统和docker工具的操作步骤详解)
- sqlserver 存储过程(SQL Server解析XML数据的方法详解)
- VS2012、VS2010、VS2008常用的快捷键有哪些
- 阿里云linux服务器怎么进(阿里云Linux主机安装WDCP管理面板包含lamp+lnmp+lanmp环境)
- react性能优化是哪个周期(React 并发功能体验前端的并发模式)
- SQL SERVER ErrorLog文件