string与StringBulider的区别

本文深入探讨了C#中的预定义类型string与StringBuilder类的区别,包括不可变性、操作效率以及在频繁增删改操作场景下的最佳实践。通过对比分析,为开发者提供了在实际开发中选择合适数据结构的指导。

1.c#中的预定义类型string对应于.NET中的System.String类,是不可变的uncoide字符串数组,一旦赋值后便不能修改

  所有string类型的成员,对string对象的操作都不很影响原来的值,因为他们操作的是对象值的副本,每次操作如增加,删除时都是创建了新的对象,分配了新的内存

2.StringBuilder类在命名空间System.Text空间中,是unicode字符的可变数组,可以被修改,当创建StringBuilder对象之后,类分配了一个比当前字符串长度更长的缓冲区,只要缓冲区能容纳字符串的改变就不会分配新的内存。如果对字符串的操作所用的空间比缓冲区的空间多,就会分配更大的缓冲区,并把字符串拷贝到其中,新分配的缓冲区也有额外的空间

 如果对字符串增删改操作频繁,最好用StringBuilder,不需要分配新的内存

转载于:https://www.cnblogs.com/NoteofEveryDay/archive/2012/10/10/2719105.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值