string与stringbuilder的区别

string a = "aaa"
当你改变a,比如a="bbbb"的时候,会创建另外一个string对象,原来的对象还保留!
而StringBuilder对象值改变则不会另外创建一个变量!

当对字串本身进行操作时,stringbuilder性能要优于string,内存使用要少于string.
如:
string a = "abcdefg";
a = a.replace("e", "c");


stringbuilder a = "abcdefg";
a.replace("e", "c");

当字符串是固定的时候用string,当字符串需要变动时用StringBuilder

以下from MSDN

String 对象是不可改变的。每次使用 System.String 类中的方法之一时,都要在内存中创建一个新的字符串对象,这就需要为该新对象分配新的空间。在需要对字符串执行重复修改的情况下,与创建新的 String 对象相关的系统开销可能会非常昂贵。如果要修改字符串而不创建新的对象,则可以使用 System.Text.StringBuilder 类。例如,当在一个循环中将许多字符串连接在一起时,使用 StringBuilder 类可以提升性能。

posted @ 2007-10-30 21:39  jun.ma  阅读(224)  评论(0)    收藏  举报