在使用StringBuilder 实例的时候,你不需要关心它为其存储的字符串分配了多大的内存,它会自动为字符串创建足够的内存。
其Capacity 属性表明了一个StringBuilder 实例最多可以存储多少个字符,当存储的字符所需的空间大于这个数的时候,StringBuilder 会自动增大内存,增加Capacity 。
而StringBuilder 实例的Length 属性则表示当前存储的字符串的长度。
默认情况下,Capacity 属性初始值为16,当需要更多空间的是它就会翻倍。
StringBuilder sb1 = new StringBuilder(); // Len=0, Cap=16
sb1.Append("1234567890123456"); // 字符串长度=16, 容量=16
sb1.Append("z"); // 字符串长度=17, 容量=32
sb1.Append("1234567890123456"); // 字符串长度=33, 容量=64
你也可以在构造StringBuilder 实例的时候指定初始容量:
StringBuilder sb2 = new StringBuilder(100);
原文地址:https://csharp.2000things.com/2010/08/27/71-stringbuilder-capacity/