Capacity Property
Collapse the table of content
Expand the table of content

StringBuilder.Capacity Property

Gets or sets the maximum number of characters that can be contained in the memory allocated by the current instance.

Namespace: System.Text
Assembly: mscorlib (in mscorlib.dll)

public int Capacity { get; set; }
/** @property */
public int get_Capacity ()

/** @property */
public void set_Capacity (int value)

public function get Capacity () : int

public function set Capacity (value : int)

Property Value

The maximum number of characters that can be contained in the memory allocated by the current instance.

Exception typeCondition

ArgumentOutOfRangeException

The value specified for a set operation is less than the current length of this instance.

-or-

The value specified for a set operation is greater than the maximum capacity.

Capacity does not affect the string value of the current instance. Capacity can be decreased as long as it is not less than Length.

The StringBuilder dynamically allocates more space when required and increases Capacity accordingly. For performance reasons, a StringBuilder might allocate more memory than needed. The amount of memory allocated is implementation-specific.

The following code example demonstrates the Capacity property.

using System;
using System.Text;

class Sample 
{
    public static void Main() 
    {
    StringBuilder sb1 = new StringBuilder("abc");
    StringBuilder sb2 = new StringBuilder("abc", 16);

    Console.WriteLine();
    Console.WriteLine("a1) sb1.Length = {0}, sb1.Capacity = {1}", sb1.Length, sb1.Capacity);
    Console.WriteLine("a2) sb2.Length = {0}, sb2.Capacity = {1}", sb2.Length, sb2.Capacity);
    Console.WriteLine("a3) sb1.ToString() = \"{0}\", sb2.ToString() = \"{1}\"", 
                           sb1.ToString(),       sb2.ToString());
    Console.WriteLine("a4) sb1 equals sb2: {0}", sb1.Equals(sb2));

    Console.WriteLine();
    Console.WriteLine("Ensure sb1 has a capacity of at least 50 characters.");
    sb1.EnsureCapacity(50);

    Console.WriteLine();
    Console.WriteLine("b1) sb1.Length = {0}, sb1.Capacity = {1}", sb1.Length, sb1.Capacity);
    Console.WriteLine("b2) sb2.Length = {0}, sb2.Capacity = {1}", sb2.Length, sb2.Capacity);
    Console.WriteLine("b3) sb1.ToString() = \"{0}\", sb2.ToString() = \"{1}\"", 
                           sb1.ToString(),       sb2.ToString());
    Console.WriteLine("b4) sb1 equals sb2: {0}", sb1.Equals(sb2));

    Console.WriteLine();
    Console.WriteLine("Set the length of sb1 to zero.");
    Console.WriteLine("Set the capacity of sb2 to 51 characters.");
    sb1.Length = 0;
    sb2.Capacity = 51;

    Console.WriteLine();
    Console.WriteLine("c1) sb1.Length = {0}, sb1.Capacity = {1}", sb1.Length, sb1.Capacity);
    Console.WriteLine("c2) sb2.Length = {0}, sb2.Capacity = {1}", sb2.Length, sb2.Capacity);
    Console.WriteLine("c3) sb1.ToString() = \"{0}\", sb2.ToString() = \"{1}\"", 
                           sb1.ToString(),       sb2.ToString());
    Console.WriteLine("c4) sb1 equals sb2: {0}", sb1.Equals(sb2));
    }
}
/*
This example produces the following results:

a1) sb1.Length = 3, sb1.Capacity = 16
a2) sb2.Length = 3, sb2.Capacity = 16
a3) sb1.ToString() = "abc", sb2.ToString() = "abc"
a4) sb1 equals sb2: True

Ensure sb1 has a capacity of at least 50 characters.

b1) sb1.Length = 3, sb1.Capacity = 51
b2) sb2.Length = 3, sb2.Capacity = 16
b3) sb1.ToString() = "abc", sb2.ToString() = "abc"
b4) sb1 equals sb2: False

Set the length of sb1 to zero.
Set the capacity of sb2 to 51 characters.

c1) sb1.Length = 0, sb1.Capacity = 51
c2) sb2.Length = 3, sb2.Capacity = 51
c3) sb1.ToString() = "", sb2.ToString() = "abc"
c4) sb1 equals sb2: False
*/

// This example demonstrates StringBuilder.EnsureCapacity
//                           StringBuilder.Capacity
//                           StringBuilder.Length
//                           StringBuilder.Equals
import System.*;
import System.Text.*;

class Sample
{
    public static void main(String[] args)
    {
        StringBuilder sb1 = new StringBuilder("abc");
        StringBuilder sb2 = new StringBuilder("abc", 16);

        Console.WriteLine();
        Console.WriteLine("a1) sb1.get_Length() = {0}, " 
            + "sb1.get_Capacity() = {1}", 
            System.Convert.ToString(sb1.get_Length()), 
            System.Convert.ToString(sb1.get_Capacity()));
        Console.WriteLine("a2) sb2.get_Length() = {0}, " 
            + "sb2.get_Capacity() = {1}", 
            System.Convert.ToString(sb2.get_Length()), 
            System.Convert.ToString(sb2.get_Capacity()));
        Console.WriteLine("a3) sb1.ToString() = \"{0}\", " 
            + "sb2.ToString() = \"{1}\"", sb1.ToString(), sb2.ToString());
        Console.WriteLine("a4) sb1 equals sb2: {0}", 
            System.Convert.ToString(sb1.Equals(sb2)));

        Console.WriteLine();
        Console.WriteLine("Ensure sb1 has a capacity of at least 50 " 
            + "characters.");
        sb1.EnsureCapacity(50);

        Console.WriteLine();
        Console.WriteLine("b1) sb1.get_Length() = {0}, " 
            + "sb1.get_Capacity() = {1}", 
            System.Convert.ToString(sb1.get_Length()), 
            System.Convert.ToString(sb1.get_Capacity()));
        Console.WriteLine("b2) sb2.get_Length() = {0}, " 
            + "sb2.get_Capacity() = {1}", 
            System.Convert.ToString(sb2.get_Length()), 
            System.Convert.ToString(sb2.get_Capacity()));
        Console.WriteLine("b3) sb1.ToString() = \"{0}\", " 
            + "sb2.ToString() = \"{1}\"", sb1.ToString(), sb2.ToString());
        Console.WriteLine("b4) sb1 equals sb2: {0}", 
            System.Convert.ToString(sb1.Equals(sb2)));

        Console.WriteLine();
        Console.WriteLine("Set the length of sb1 to zero.");
        Console.WriteLine("Set the capacity of sb2 to 51 characters.");
        sb1.set_Length(0);
        sb2.set_Capacity(51);

        Console.WriteLine();
        Console.WriteLine("c1) sb1.get_Length() = {0}, "
            + "sb1.get_Capacity() = {1}", 
            System.Convert.ToString(sb1.get_Length()), 
            System.Convert.ToString(sb1.get_Capacity()));
        Console.WriteLine("c2) sb2.get_Length() = {0}, " 
            + "sb2.get_Capacity() = {1}", 
            System.Convert.ToString(sb2.get_Length()), 
            System.Convert.ToString(sb2.get_Capacity()));
        Console.WriteLine("c3) sb1.ToString() = \"{0}\", " 
            + "sb2.ToString() = \"{1}\"", sb1.ToString(), sb2.ToString());
        Console.WriteLine("c4) sb1 equals sb2: {0}", 
            System.Convert.ToString(sb1.Equals(sb2)));
    } //main
} //Sample
/*
This example produces the following results:

a1) sb1.get_Length() = 3, sb1.get_Capacity() = 16
a2) sb2.get_Length() = 3, sb2.get_Capacity() = 16
a3) sb1.ToString() = "abc", sb2.ToString() = "abc"
a4) sb1 equals sb2: True

Ensure sb1 has a capacity of at least 50 characters.

b1) sb1.get_Length() = 3, sb1.get_Capacity() = 50
b2) sb2.get_Length() = 3, sb2.get_Capacity() = 16
b3) sb1.ToString() = "abc", sb2.ToString() = "abc"
b4) sb1 equals sb2: False

Set the length of sb1 to zero.
Set the capacity of sb2 to 51 characters.

c1) sb1.get_Length() = 0, sb1.get_Capacity() = 50
c2) sb2.get_Length() = 3, sb2.get_Capacity() = 51
c3) sb1.ToString() = "", sb2.ToString() = "abc"
c4) sb1 equals sb2: False
*/

Windows 98, Windows 2000 SP4, Windows CE, Windows Millennium Edition, Windows Mobile for Pocket PC, Windows Mobile for Smartphone, Windows Server 2003, Windows XP Media Center Edition, Windows XP Professional x64 Edition, Windows XP SP2, Windows XP Starter Edition

The .NET Framework does not support all versions of every platform. For a list of the supported versions, see System Requirements.

.NET Framework

Supported in: 2.0, 1.1, 1.0

.NET Compact Framework

Supported in: 2.0, 1.0

Community Additions

ADD
Show:
© 2016 Microsoft