Метод EnsureCapacity
Метод EnsureCapacity класса StringBuilder
увеличивает внутренний запас буфера,
если он меньше переданного числа.
Параметр задаёт минимальную вместимость
в символах. Метод возвращает фактическое
значение Capacity
после возможного расширения. Длина
текста Length
при этом не меняется.
Синтаксис
int cap = sb.EnsureCapacity(int capacity);
Пример
Давайте заранее запросим вместимость
64 символов:
using System;
using System.Text;
class Program
{
static void Main()
{
StringBuilder sb = new StringBuilder("abcde");
sb.EnsureCapacity(64);
Console.WriteLine(sb.Capacity >= 64);
}
}
Результат выполнения кода:
True
Пример
Давайте допишем много текста после резервирования буфера:
using System;
using System.Text;
class Program
{
static void Main()
{
StringBuilder sb = new StringBuilder();
sb.EnsureCapacity(32);
sb.Append("abcde").Append("12345");
Console.WriteLine(sb.ToString());
}
}
Результат выполнения кода:
"abcde12345"
Пример
Давайте вызовем EnsureCapacity,
когда запас уже достаточен:
using System;
using System.Text;
class Program
{
static void Main()
{
StringBuilder sb = new StringBuilder(128);
sb.Append("abcde");
sb.EnsureCapacity(16);
Console.WriteLine(sb.Capacity >= 16);
Console.WriteLine(sb.ToString());
}
}
Результат выполнения кода:
True
"abcde"
Пример
Давайте сравним длину текста и запас
после EnsureCapacity:
using System;
using System.Text;
class Program
{
static void Main()
{
StringBuilder sb = new StringBuilder("12345");
sb.EnsureCapacity(48);
Console.WriteLine(sb.Length);
Console.WriteLine(sb.Capacity >= sb.Length);
}
}
Результат выполнения кода:
5
True