StringBuilderクラスでは、常に文字列の実際の長さ以上のバッファが確保されています。 Capacityプロパティは現在のバッファのサイズ(容量)を取得するためのプロパティです。 このプロパティを設定することでバッファのサイズを変更することもできます。 ただし、当然現在の文字列の長さ未満にすることはできません。 この場合、例外ArgumentOutOfRangeExceptionがスローされます。
また、EnsureCapacityメソッドでもバッファのサイズを変更することができます。 このメソッドは、容量を減らすためではなく、現在の容量よりも多く確保したい場合に使用します。 EnsureCapacityメソッドでバッファを確保する場合、実際に確保される容量が指定した容量よりも大きくなる場合があります。 つまり、 最小でもメソッドで指定したサイズが確保されます。
StringBuilderのコンストラクタでも容量の初期値を指定してインスタンスを生成することができます(指定しない場合は初期値16でバッファが確保されます)。 StringBuilderに追加しようとする文字列の量をあらかじめ予測出来る場合は、あらかじめ適切な容量のバッファを確保しておくことでバッファ確保によるオーバーヘッドを減らすことが出来ます。