在使用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/