【C#】string与StringBuilder

362 阅读1分钟

​string

字符串一旦创建就不可修改,我们平时每次修改字符串,实际上是在内存新创建一个新的字符串对象,旧的对象将会自动回收

StringBuilder

使用同一块内存区域进行操作,不需要每次都分配内存空间

当对字符串频繁操作时,使用StringBuilder比使用string效率更高

但需要注意的是,在实例化StringBuilder时,要根据需求确定好容量,如果容量定的不合理也会影响效率

如果容量过大,造成内存浪费

如果容量过小,每次容量不足,都会自动增加容量

StringBuilder sb = new StringBuilder(10);

定义容量为10,当容量不足时,容量会以原来容量倍增

比如现在追加12个字符串,容量不足,容量会自动增加到20,继续追加字符串,容量又不足时,容量自动增加到40