Использование класса StringBuilder в .NET
Объект String является неизменяемым. Каждый раз при использовании одного из методов в классе System.String вы создаете объект строки в памяти, для которого требуется выделение нового пространства. В случаях, когда необходимо выполнять повторяющиеся изменения строки, издержки, связанные с созданием объекта String, могут оказаться значительными. Чтобы изменять строку без создания нового объекта, можно использовать класс System.Text.StringBuilder. Например, использование класса StringBuilder может повысить производительность при соединении большого количества строк в цикле.
Импорт пространства имен System.Text
Класс StringBuilder находится в пространстве имен System.Text. Чтобы избежать необходимости в указании полного имени типа в коде System.Text , можно импортировать пространство имен:
using namespace System; using namespace System::Text;
using System; using System.Text;
Imports System.Text
Создание экземпляров объекта StringBuilder
Вы можете создать экземпляр класса StringBuilder путем инициализации переменной с помощью одного из перегруженных методов конструктора, как показано в следующем примере.
StringBuilder^ myStringBuilder = gcnew StringBuilder("Hello World!");
StringBuilder myStringBuilder = new StringBuilder("Hello World!");
Dim myStringBuilder As New StringBuilder("Hello World!")
Настройка емкости и длины
Хотя StringBuilder является динамическим объектом, который позволяет вам развернуть ряд символов в строке, которые она инкапсулирует, вы можете указать максимальное число содержащихся в ней символов. Это значение называется емкостью объекта, и его не следует путать с длиной строки, которую содержит текущий объект StringBuilder. Например, вы можете создать экземпляр класса StringBuilder со строкой Hello, длина которой составляет 5 символов, указав при этом максимальную емкость объекта 25 символов. При изменении значения StringBuilder размер не перераспределяется, если не достигнута максимальная емкость. Когда это происходит, новое пространство выделяется автоматически, а емкость удваивается. Вы можете указать емкость класса StringBuilder с помощью одного из перегруженных конструкторов. В следующем примере показано, что объект myStringBuilder можно развернуть максимум на 25 позиций.
StringBuilder^ myStringBuilder = gcnew StringBuilder("Hello World!", 25);
StringBuilder myStringBuilder = new StringBuilder("Hello World!", 25);
Dim myStringBuilder As New StringBuilder("Hello World!", 25)
Кроме того, вы можете использовать доступное для чтения или записи свойство Capacity, чтобы задать максимальную длину объекта. В следующем примере используется свойство Capacity для определения максимальной длины объекта.
myStringBuilder->Capacity = 25;
myStringBuilder.Capacity = 25;
myStringBuilder.Capacity = 25
Метод EnsureCapacity можно использовать для проверки емкости текущего объекта StringBuilder. Если емкость больше переданного значения, изменения не вносятся; однако если емкость меньше переданного значения, текущая емкость изменяется для соответствия переданному значению.
Можно также просмотреть или задать свойство Length. Если вы задали для свойства Length значение больше значения свойства Capacity, значение свойства Capacity будет автоматически изменено на то же самое значение, что и у свойства Length. Если задать для свойства Length значение меньше длины строки в текущем объекте StringBuilder, строка будет укорочена.
Изменение строки StringBuilder
В следующей таблице перечислены методы, которые можно использовать для изменения содержимого объекта StringBuilder.
| Имя метода | Использовать |
|---|---|
| StringBuilder.Append | Добавляет сведения в конец текущего объекта StringBuilder. |
| StringBuilder.AppendFormat | Заменяет отформатированным текстом описатель формата, переданный в строке. |
| StringBuilder.Insert | Вставляет строку или объект в указанный индекс текущего объекта StringBuilder. |
| StringBuilder.Remove | Удаляет указанное количество символов из текущего объекта StringBuilder. |
| StringBuilder.Replace | Замещает все вхождения указанного символа или строки в текущем StringBuilder на другой указанный символ или строку. |
Добавить
Метод Append позволяет добавить текст или строковое представление объекта к концу строки, представленной текущим объектом StringBuilder. Следующий пример инициализирует StringBuilder с текстом Hello World, а затем добавляет текст в конец объекта. Пространство выделяется автоматически при необходимости.
StringBuilder^ myStringBuilder = gcnew StringBuilder("Hello World!"); myStringBuilder->Append(" What a beautiful day."); Console::WriteLine(myStringBuilder); // The example displays the following output: // Hello World! What a beautiful day.
StringBuilder myStringBuilder = new StringBuilder("Hello World!"); myStringBuilder.Append(" What a beautiful day."); Console.WriteLine(myStringBuilder); // The example displays the following output: // Hello World! What a beautiful day.
Dim myStringBuilder As New StringBuilder("Hello World!") myStringBuilder.Append(" What a beautiful day.") Console.WriteLine(myStringBuilder) ' The example displays the following output: ' Hello World! What a beautiful day.
AppendFormat
Метод StringBuilder.AppendFormat добавляет текс в конец объекта StringBuilder. Он поддерживает возможность составного форматирования (дополнительные сведения см. в статье Составное форматирование) путем вызова реализации IFormattable для одного или нескольких форматируемых объектов. Следовательно, он принимает строки стандартного формата для числовых значений, значений даты и времени, значений перечисления, строки пользовательского формата для чисел и дат и строки формата, определенные для пользовательских типов. (Дополнительные сведения о форматировании см. в разделе Типы форматирования.) Вы можете использовать этот метод для настройки формата переменных и добавления этих значений к StringBuilder. В следующем примере метод AppendFormat помещает в конец объекта StringBuilder целочисленное значение, отформатированное в виде значения валюты.
int MyInt = 25; StringBuilder^ myStringBuilder = gcnew StringBuilder("Your total is "); myStringBuilder->AppendFormat(" ", MyInt); Console::WriteLine(myStringBuilder); // The example displays the following output: // Your total is $25.00
int MyInt = 25; StringBuilder myStringBuilder = new StringBuilder("Your total is "); myStringBuilder.AppendFormat(" ", MyInt); Console.WriteLine(myStringBuilder); // The example displays the following output: // Your total is $25.00
Dim MyInt As Integer = 25 Dim myStringBuilder As New StringBuilder("Your total is ") myStringBuilder.AppendFormat(" ", MyInt) Console.WriteLine(myStringBuilder) ' The example displays the following output: ' Your total is $25.00
Insert
Метод Insert добавляет строку или объект в указанную позицию в текущем объекте StringBuilder. В следующем примере этот метод вставляет слово в шестую позицию объекта StringBuilder.
StringBuilder^ myStringBuilder = gcnew StringBuilder("Hello World!"); myStringBuilder->Insert(6,"Beautiful "); Console::WriteLine(myStringBuilder); // The example displays the following output: // Hello Beautiful World!
StringBuilder myStringBuilder = new StringBuilder("Hello World!"); myStringBuilder.Insert(6,"Beautiful "); Console.WriteLine(myStringBuilder); // The example displays the following output: // Hello Beautiful World!
Dim myStringBuilder As New StringBuilder("Hello World!") myStringBuilder.Insert(6, "Beautiful ") Console.WriteLine(myStringBuilder) ' The example displays the following output: ' Hello Beautiful World!
Удалить
Вы можете использовать метод Remove, чтобы удалить указанное количество символов из текущего объекта StringBuilder, начиная с указанного индекса (с отсчетом с нуля). В следующем примере метод Remove используется для сокращения объекта StringBuilder.
StringBuilder^ myStringBuilder = gcnew StringBuilder("Hello World!"); myStringBuilder->Remove(5,7); Console::WriteLine(myStringBuilder); // The example displays the following output: // Hello
StringBuilder myStringBuilder = new StringBuilder("Hello World!"); myStringBuilder.Remove(5,7); Console.WriteLine(myStringBuilder); // The example displays the following output: // Hello
Dim myStringBuilder As New StringBuilder("Hello World!") myStringBuilder.Remove(5, 7) Console.WriteLine(myStringBuilder) ' The example displays the following output: ' Hello
Замените
Метод Replace можно использовать для замены символов в объекте StringBuilder другими указанными символами. В следующем примере метод Replace находит все экземпляры восклицательного знака (!) в объекте StringBuilder и заменяет их знаками вопроса (?).
StringBuilder^ myStringBuilder = gcnew StringBuilder("Hello World!"); myStringBuilder->Replace('!', '?'); Console::WriteLine(myStringBuilder); // The example displays the following output: // Hello World?
StringBuilder myStringBuilder = new StringBuilder("Hello World!"); myStringBuilder.Replace('!', '?'); Console.WriteLine(myStringBuilder); // The example displays the following output: // Hello World?
Dim myStringBuilder As New StringBuilder("Hello World!") myStringBuilder.Replace("!"c, "?"c) Console.WriteLine(myStringBuilder) ' The example displays the following output: ' Hello World?
Преобразование объекта StringBuilder в строку
Необходимо преобразовать объект StringBuilder в String, прежде чем передавать представленную объектом StringBuilder строку методу, который содержит параметр String, или вывести ее в пользовательском интерфейсе. Это преобразование можно выполнить, вызвав метод StringBuilder.ToString. Следующий пример вызывает несколько методов StringBuilder, а затем вызывает метод StringBuilder.ToString() для отображения строки.
using System; using System.Text; public class Example < public static void Main() < StringBuilder sb = new StringBuilder(); bool flag = true; string[] spellings = < "recieve", "receeve", "receive" >; sb.AppendFormat("Which of the following spellings is :", flag); sb.AppendLine(); for (int ctr = 0; ctr <= spellings.GetUpperBound(0); ctr++) < sb.AppendFormat(" . ", ctr, spellings[ctr]); sb.AppendLine(); > sb.AppendLine(); Console.WriteLine(sb.ToString()); > > // The example displays the following output: // Which of the following spellings is True: // 0. recieve // 1. receeve // 2. receive
Imports System.Text Module Example Public Sub Main() Dim sb As New StringBuilder() Dim flag As Boolean = True Dim spellings() As String = sb.AppendFormat("Which of the following spellings is :", flag) sb.AppendLine() For ctr As Integer = 0 To spellings.GetUpperBound(0) sb.AppendFormat(" . ", ctr, spellings(ctr)) sb.AppendLine() Next sb.AppendLine() Console.WriteLine(sb.ToString()) End Sub End Module ' The example displays the following output: ' Which of the following spellings is True: ' 0. recieve ' 1. receeve ' 2. receive
См. также
- System.Text.StringBuilder
- Базовые операции со строками в .NET Framework
- Типы форматирования
Совместная работа с нами на GitHub
Источник этого содержимого можно найти на GitHub, где также можно создавать и просматривать проблемы и запросы на вытягивание. Дополнительные сведения см. в нашем руководстве для участников.
Класс StringBuilder

Когда строка конструируется классом String, выделяется ровно столько памяти, сколько необходимо для хранения данной строки. Однако, в пространстве имен System.Text имеется класс StringBuilder, который поступает лучше и обычно выделяет больше памяти, чем нужно в данный момент. У вас, как разработчика, есть возможность указать, сколько именно памяти должен выделить StringBuilder, но если вы этого не сделаете, то будет выбран объем по умолчанию, который зависит от размера начального текста, инициализирующего экземпляр StringBuilder. Класс StringBuilder имеет два главных свойства:
- Length, показывающее длину строки, содержащуюся в объекте в данный момент
- Capacity, указывающее максимальную длину строки, которая может поместиться в выделенную для объекта память
Любые модификации строки происходят внутри блока памяти, выделенного экземпляру StringBuilder. Это делает добавление подстрок и замену индивидуальных символов строки очень эффективными. Удаление или вставка подстрок неизбежно остаются менее эффективными, потому что при этих операциях приходится перемещать в памяти части строки. Выделять новую память и, возможно, полностью перемещать ее содержимое приходится только при выполнении ряда действий, которые приводят к превышению выделенной емкости строки. В дополнение к избыточной памяти, выделяемой изначально на основе экспериментов, StringBuilder имеет свойство удваивать свою емкость, когда происходит переполнение, а новое значение емкости не установлено явно.
using System; using System.Collections.Generic; using System.Linq; using System.Text; namespace ConsoleApplication1 < class Program < static void Main(string[] args) < StringBuilder hello = new StringBuilder("Привет, меня зовут Александр Ерохин",120); hello.AppendFormat("Я рад вас приветствовать на моем сайте professorweb.ru"); >> >
В данном примере начальная емкость StringBuilder равна 120. Всегда лучше сразу указывать емкость, превышающую предполагаемую длину строки, чтобы объекту StringBuilder не приходилось заново выделять память при переполнении. По умолчанию устанавливается емкость в 16 символов. Схематически данный пример работает следующим образом:

Т.е. при вызове метода AppendFormat() остаток текста помещается в пустое пространство без необходимости перераспределения памяти. Однако реальная эффективность, которую несет с собой применение StringBuilder, проявляется при выполнении повторных подстановок текста.
В следующей таблице перечислены основные методы класса StringBuilder:
| Метод | Назначение |
|---|---|
| Append() | Добавляет строку к текущей строке |
| AppendFormat() | Добавляет строку, сформированную в соответствии со спецификатором формата |
| Insert() | Вставляет подстроку в строку |
| Remove() | Удаляет символ из текущей строки |
| Replace() | Заменяет все вхождения символа другим символом или вхождения подстроки другой подстрокой |
| ToString() | Возвращает текущую строку в виде объекта System.String (переопределение метода класса System.Object) |
Давайте рассмотрим практический пример использования класса StringBuilder:
using System; using System.Collections.Generic; using System.Linq; using System.Text; namespace ConsoleApplication1 < class Program < static void Main(string[] args) < StringBuilder hello = new StringBuilder("Привет, меня зовут Александр Ерохин",120); hello.AppendFormat(" Я рад вас приветствовать на моем сайте professorweb.ru"); // Зашифруем строку, хранящуюся в переменной hello Console.WriteLine("Исходная строка: \n \n",hello); for (int i = 'я'; i >= 'a'; i--) hello = hello.Replace((char)i,(char)(i+3)); Console.WriteLine("Зашифрованная строка:\n ",hello); Console.ReadLine(); > > >
Stringbuilder c что это
Хотя класс System.String предоставляет нам широкую функциональность по работе со строками, все таки он имеет свои недостатки. Прежде всего, объект String представляет собой неизменяемую строку. Когда мы выполняем какой-нибудь метод класса String, система создает новый объект в памяти с выделением ему достаточного места. Удаление первого символа — не самая затратная операция. Однако когда подобных операций множество, а объем текста, для которого надо выполнить данные операции, также не самый маленький, то издержки при потере производительности становятся более существенными.
Чтобы выйти из этой ситуации во фреймворк .NET был добавлен новый класс StringBuilder , который находится в пространстве имен System.Text . Этот класс представляет динамическую строку.
Создание StringBuilder
Для создания объекта StringBuilder можно использовать ряд его конструкторов. Прежде всего можно создать пустой StringBuilder:
using System.Text; StringBuilder sb = new StringBuilder();
Можно сразу инициализировать объект определенной строкой:
StringBuilder sb = new StringBuilder("Привет мир");
С помощью метода ToString() мы можем получить строку, которая хранится в StringBuilder:
var sb = new StringBuilder("Hello World"); Console.WriteLine(sb.ToString()); // Hello World
Либо можно просто передать объект StringBuilder:
var sb = new StringBuilder("Hello World"); Console.WriteLine(sb); // Hello World
Длина и емкость StringBuilder
Для хранения длины строки в классе StringBuilder определенно свойство Length . Однако есть и вторая величина — емкость выделенной памяти. Это значение хранится в свойстве Capacity . Емкость — это выделенная память под объект. Установка емкости позволяет уменьшить выделения памяти и тем самым повысить производительность.
Если строка, которая передается в конструктор StringBuilder, имеет длину 16 символов или меньше, то начальная ёмкость в StringBuilder равна 16. Если начальная строка больше 16 символов, то в качестве начальной емкости StringBuilder будет использовать длину строки.
Например, посмотрим, что содержат данные свойства:
using System.Text; StringBuilder sb = new StringBuilder("Привет мир"); Console.WriteLine($"Длина: "); // Длина: 10 Console.WriteLine($"Емкость: "); // Емкость: 16
Хотя в данном случае длина равна 10 символов, но реально емкость будет составлять по умолчанию 16 символов. То есть мы видим, что при создании строки StringBuilder выделяет памяти больше, чем необходимо этой строке. При увеличении строки в StringBuilder, когда количество символов превосходит начальную емкость, то емкость увеличивается в два и более раз.
Если у нас заранее известен максимальный размер объекта, то мы можем таким образом сразу задать емкость с помощью одного из конструкторов и тем самым избежать последующих издержек при дополнительном выделении памяти.
var sb = new StringBuilder(32);
StringBuilder также позволяет сразу задать строку и емкость:
var sb = new StringBuilder("Привет мир", 32);
Операции со строками в StringBuilder
Для операций над строками класс StringBuilder определяет ряд методов:
- Append : добавляет подстроку в объект StringBuilder
- Insert : вставляет подстроку в объект StringBuilder, начиная с определенного индекса
- Remove : удаляет определенное количество символов, начиная с определенного индекса
- Replace : заменяет все вхождения определенного символа или подстроки на другой символ или подстроку
- AppendFormat : добавляет подстроку в конец объекта StringBuilder
Теперь посмотрим на примере метода Append() использование и преимущества класса StringBuilder:
using System.Text; var sb = new StringBuilder("Название: "); Console.WriteLine(sb); // Название: Console.WriteLine($"Длина: "); // 10 Console.WriteLine($"Емкость: "); // 16 sb.Append(" Руководство"); Console.WriteLine(sb); // Название: Руководство Console.WriteLine($"Длина: "); // 22 Console.WriteLine($"Емкость: "); // 32 sb.Append(" по C#"); Console.WriteLine(sb); // Название: Руководство по C# Console.WriteLine($"Длина: "); // 28 Console.WriteLine($"Емкость: "); // 32
При создании объекта StringBuilder выделяется память по умолчанию для 16 символов, так как длина начальной строки меньше 16.
Дальше применяется метод Append — этот метод добавляет к строке подстроку. Так как при объединении строк их общая длина — 22 символа — превышает начальную емкость в 16 символов, то начальная емкость удваивается — до 32 символов.
Если бы итоговая длина строки была бы больше 32 символов, то емкость расширялась бы до размера длины строки.
Далее опять применяется метод Append, однако финальная длина уже будет 28 символов, что меньше 32 символов, и дополнительная память не будет выделяться.
Используем остальные методы StringBuilder:
var sb = new StringBuilder("Привет мир"); sb.Append("!"); sb.Insert(7, "компьютерный "); Console.WriteLine(sb); // Привет компьютерный мир! // заменяем слово sb.Replace("мир", "world"); Console.WriteLine(sb); // Привет компьютерный world! // удаляем 13 символов, начиная с 7-го sb.Remove(7, 13); Console.WriteLine(sb); // Привет world! // получаем строку из объекта StringBuilder string text = sb.ToString(); Console.WriteLine(text); // Привет world!
Когда надо использовать класс String, а когда StringBuilder?
Microsoft рекомендует использовать класс String в следующих случаях:
- При небольшом количестве операций и изменений над строками
- При выполнении фиксированного количества операций объединения. В этом случае компилятор может объединить все операции объединения в одну
- Когда надо выполнять масштабные операции поиска при построении строки, например IndexOf или StartsWith. Класс StringBuilder не имеет подобных методов.
Класс StringBuilder рекомендуется использовать в следующих случаях:
- При неизвестном количестве операций и изменений над строками во время выполнения программы
- Когда предполагается, что приложению придется сделать множество подобных операций
String Builder Класс
Некоторые сведения относятся к предварительной версии продукта, в которую до выпуска могут быть внесены существенные изменения. Майкрософт не предоставляет никаких гарантий, явных или подразумеваемых, относительно приведенных здесь сведений.
Предоставляет изменяемую строку символов. Этот класс не наследуется.
public ref class StringBuilder sealed
public ref class StringBuilder sealed : System::Runtime::Serialization::ISerializable
public sealed class StringBuilder
public sealed class StringBuilder : System.Runtime.Serialization.ISerializable
[System.Serializable] public sealed class StringBuilder
[System.Serializable] [System.Runtime.InteropServices.ComVisible(true)] public sealed class StringBuilder : System.Runtime.Serialization.ISerializable
type StringBuilder = class
type StringBuilder = class interface ISerializable
[] type StringBuilder = class
[] [] type StringBuilder = class interface ISerializable
Public NotInheritable Class StringBuilder
Public NotInheritable Class StringBuilder Implements ISerializable
Наследование
StringBuilder
Реализации
Примеры
В следующем примере показано, как вызвать многие методы, определенные классом StringBuilder .
using namespace System; using namespace System::Text; int main() < // Create a StringBuilder that expects to hold 50 characters. // Initialize the StringBuilder with "ABC". StringBuilder^ sb = gcnew StringBuilder("ABC", 50); // Append three characters (D, E, and F) to the end of the // StringBuilder. sb->Append(gcnew array); // Append a format string to the end of the StringBuilder. sb->AppendFormat("GHI", (Char)'J', (Char)'k'); // Display the number of characters in the StringBuilder // and its string. Console::WriteLine(" chars: ", sb->Length, sb->ToString()); // Insert a string at the beginning of the StringBuilder. sb->Insert(0, "Alphabet: "); // Replace all lowercase k's with uppercase K's. sb->Replace('k', 'K'); // Display the number of characters in the StringBuilder // and its string. Console::WriteLine(" chars: ", sb->Length, sb->ToString()); > // This code produces the following output. // // 11 chars: ABCDEFGHIJk // 21 chars: Alphabet: ABCDEFGHIJK
using System; using System.Text; public sealed class App < static void Main() < // Create a StringBuilder that expects to hold 50 characters. // Initialize the StringBuilder with "ABC". StringBuilder sb = new StringBuilder("ABC", 50); // Append three characters (D, E, and F) to the end of the StringBuilder. sb.Append(new char[] < 'D', 'E', 'F' >); // Append a format string to the end of the StringBuilder. sb.AppendFormat("GHI", 'J', 'k'); // Display the number of characters in the StringBuilder and its string. Console.WriteLine(" chars: ", sb.Length, sb.ToString()); // Insert a string at the beginning of the StringBuilder. sb.Insert(0, "Alphabet: "); // Replace all lowercase k's with uppercase K's. sb.Replace('k', 'K'); // Display the number of characters in the StringBuilder and its string. Console.WriteLine(" chars: ", sb.Length, sb.ToString()); > > // This code produces the following output. // // 11 chars: ABCDEFGHIJk // 21 chars: Alphabet: ABCDEFGHIJK
open System.Text // Create a StringBuilder that expects to hold 50 characters. // Initialize the StringBuilder with "ABC". let sb = StringBuilder("ABC", 50) // Append three characters (D, E, and F) to the end of the StringBuilder. sb.Append [| 'D'; 'E'; 'F' |] |> ignore // Append a format string to the end of the StringBuilder. sb.AppendFormat("GHI", 'J', 'k') |> ignore // Display the number of characters in the StringBuilder and its string. printfn $" chars: " // Insert a string at the beginning of the StringBuilder. sb.Insert(0, "Alphabet: ") |> ignore // Replace all lowercase k's with uppercase K's. sb.Replace('k', 'K') |> ignore // Display the number of characters in the StringBuilder and its string. printfn $" chars: " // This code produces the following output. // // 11 chars: ABCDEFGHIJk // 21 chars: Alphabet: ABCDEFGHIJK
Imports System.Text Public Module App Public Sub Main() ' Create a StringBuilder that expects to hold 50 characters. ' Initialize the StringBuilder with "ABC". Dim sb As New StringBuilder("ABC", 50) ' Append three characters (D, E, and F) to the end of the StringBuilder. sb.Append(New Char() ) ' Append a format string to the end of the StringBuilder. sb.AppendFormat("GHI", "J"c, "k"c) ' Display the number of characters in the StringBuilder and its string. Console.WriteLine(" chars: ", sb.Length, sb.ToString()) ' Insert a string at the beginning of the StringBuilder. sb.Insert(0, "Alphabet: ") ' Replace all lowercase k's with uppercase K's. sb.Replace("k", "K") ' Display the number of characters in the StringBuilder and its string. Console.WriteLine(" chars: ", sb.Length, sb.ToString()) End Sub End Module ' This code produces the following output. ' ' 11 chars: ABCDEFGHIJk ' 21 chars: Alphabet: ABCDEFGHIJK
Комментарии
Дополнительные сведения об этом API см. в разделе Дополнительные примечания API для StringBuilder.
Примечания для тех, кто вызывает этот метод
В .NET Core и в платформа .NET Framework 4.0 и более поздних версий при создании экземпляра StringBuilder объекта путем вызова StringBuilder(Int32, Int32) конструктора длина и емкость экземпляра StringBuilder могут превысить значение его MaxCapacity свойства. Это может произойти, в частности, при вызове Append(String) методов и AppendFormat(String, Object) для добавления небольших строк.
Конструкторы
Инициализирует новый экземпляр класса StringBuilder.
Инициализирует новый экземпляр класса StringBuilder, используя указанную емкость.
Инициализирует новый экземпляр класса StringBuilder, который начинается с указанной емкости и может увеличиваться до указанного максимального значения.
Инициализирует новый экземпляр класса StringBuilder, используя указанную строку.
Инициализирует новый экземпляр класса StringBuilder, используя указанную строку и емкость.
Инициализирует новый экземпляр класса StringBuilder из указанной подстроки и емкости.
Свойства
Возвращает или задает максимальное число знаков, которое может содержаться в памяти, назначенной текущим экземпляром.
Возвращает или задает символ на указанной позиции в данном экземпляре.
Возвращает или задает длину текущего объекта StringBuilder.
Возвращает максимальную емкость данного экземпляра.
Методы
Добавляет строковое представление указанного логического значения к данному экземпляру.
Добавляет строковое представление указанного 8-разрядного целого числа без знака к данному экземпляру.
Добавляет строковое представление указанного объекта Char в данный экземпляр.
Добавляет к данному экземпляру массив символов Юникода начиная с указанного адреса.
Добавляет указанное число копий строкового представления символа Юникода к данному экземпляру.
Добавляет строковое представление символа Юникода в указанном массиве к данному экземпляру.
Добавляет строковое представление указанного дочернего массива символов Юникода к данному экземпляру.
Добавляет строковое представление указанного десятичного числа к данному экземпляру.
Добавляет строковое представление указанного числа с плавающей запятой с удвоенной точностью к данному экземпляру.
Добавляет указанную интерполированную строку к этому экземпляру с использованием указанного формата.
Добавляет строковое представление указанного 16-разрядного целого числа со знаком к данному экземпляру.
Добавляет строковое представление указанного 32-разрядного целого числа со знаком к данному экземпляру.
Добавляет строковое представление указанного 64-разрядного целого числа со знаком к данному экземпляру.
Добавляет строковое представление указанного объекта к данному экземпляру.
Добавляет строковое представление указанной области памяти символов только для чтения к данному экземпляру.
Добавляет строковое представление указанного диапазона символов только для чтения к данному экземпляру.
Добавляет строковое представление указанного 8-разрядного целого числа со знаком к данному экземпляру.
Добавляет строковое представление указанного числа с плавающей запятой с обычной точностью к данному экземпляру.
Добавляет копию указанной строки к данному экземпляру.
Добавляет копию указанной подстроки к данному экземпляру.
Добавляет строковое представление указанного построителя строки к данному экземпляру.
Добавляет копию подстроки в пределах указанного построителя строки к данному экземпляру.
Добавляет указанную интерполированную строку к этому экземпляру.
Добавляет строковое представление указанного 16-разрядного целого числа без знака к данному экземпляру.
Добавляет строковое представление указанного 32-разрядного целого числа без знака к данному экземпляру.
Добавляет строковое представление указанного 64-разрядного целого числа без знака к данному экземпляру.
Добавляет к данному экземпляру строку, возвращаемую в результате обработки строки составного формата, содержащей ноль или более элементов формата. Каждый элемент формата заменяется строковым представлением любого из аргументов с использованием указанного поставщика формата.
Добавляет к данному экземпляру строку, возвращаемую в результате обработки строки составного формата, содержащей ноль или более элементов формата. Каждый элемент формата заменяется строковым представлением любого из аргументов с использованием указанного поставщика формата.
Добавляет к данному экземпляру строку, возвращаемую в результате обработки строки составного формата, содержащей ноль или более элементов формата. Каждый элемент формата заменяется строковым представлением одного аргумента с использованием указанного поставщика формата.
Добавляет к данному экземпляру строку, возвращаемую в результате обработки строки составного формата, содержащей ноль или более элементов формата. Каждый элемент формата заменяется строковым представлением любого из двух аргументов с помощью указанного поставщика формата.
Добавляет к данному экземпляру строку, возвращаемую в результате обработки строки составного формата, содержащей ноль или более элементов формата. Каждый элемент формата заменяется строковым представлением любого из трех аргументов с помощью указанного поставщика формата.
Добавляет к данному экземпляру строку, возвращаемую в результате обработки строки составного формата, содержащей ноль или более элементов формата. Каждый элемент формата заменяется строковым представлением соответствующего аргумента в массиве параметров с помощью указанного поставщика формата.
Добавляет к данному экземпляру строку, возвращаемую в результате обработки строки составного формата, содержащей ноль или более элементов формата. Каждый элемент формата заменяется строковым представлением одного аргумента.
Добавляет к данному экземпляру строку, возвращаемую в результате обработки строки составного формата, содержащей ноль или более элементов формата. Каждый элемент формата заменяется строковым представлением любого из двух аргументов.
Добавляет к данному экземпляру строку, возвращаемую в результате обработки строки составного формата, содержащей ноль или более элементов формата. Каждый элемент формата заменяется строковым представлением любого из трех аргументов.
Добавляет к данному экземпляру строку, возвращаемую в результате обработки строки составного формата, содержащей ноль или более элементов формата. Каждый элемент формата заменяется строковым представлением соответствующего аргумента в массиве параметров.
Добавляет к данному экземпляру строку, возвращаемую в результате обработки строки составного формата, содержащей ноль или более элементов формата. Каждый элемент формата заменяется строковым представлением любого из аргументов с использованием указанного поставщика формата.
Добавляет к данному экземпляру строку, возвращаемую в результате обработки строки составного формата, содержащей ноль или более элементов формата. Каждый элемент формата заменяется строковым представлением любого из аргументов с использованием указанного поставщика формата.
Добавляет к данному экземпляру строку, возвращаемую в результате обработки строки составного формата, содержащей ноль или более элементов формата. Каждый элемент формата заменяется строковым представлением любого из аргументов с использованием указанного поставщика формата.
Сцепляет строковые представления элементов из указанного массива объектов, помещая между ними заданный символьный разделитель, а затем добавляет результат к текущему экземпляру построителя строк.
Сцепляет строки из указанного массива, помещая между ними заданный символьный разделитель, а затем добавляет результат к текущему экземпляру построителя строк.
Сцепляет строковые представления элементов из указанного массива объектов, помещая между ними заданный разделитель, а затем добавляет результат к текущему экземпляру построителя строк.
Сцепляет строки из указанного массива, помещая между ними заданный разделитель, а затем добавляет результат к текущему экземпляру построителя строк.
Сцепляет и добавляет элементы коллекции, помещая между ними заданный символьный разделитель.
Сцепляет и добавляет элементы коллекции, помещая между ними заданный разделитель.
Добавляет знак завершения строки по умолчанию в конец текущего объекта StringBuilder.
Добавляет указанную интерполированную строку с использованием указанного формата, за которой следует признак конца строки по умолчанию, в конец текущего объекта StringBuilder.
Добавляет копию указанной строки и знак завершения строки по умолчанию в конец текущего объекта StringBuilder.
Добавляет указанную интерполированную строку, за которой следует признак конца строки по умолчанию, в конец текущего объекта StringBuilder.
Удаляет все символы из текущего экземпляра StringBuilder.
Копирует символы из указанного сегмента этого экземпляра в указанный массив Char.
Копирует символы из указанного сегмента этого экземпляра в конечный диапазон Char.
Гарантирует, что емкость данного экземпляра StringBuilder не меньше указанного значения.
Определяет, равен ли указанный объект текущему объекту.
Возвращает значение, указывающее, соответствуют ли символы в этом экземпляре символам в указанном диапазоне символов, доступном только для чтения.
Возвращает значение, показывающее, равен ли данный экземпляр заданному объекту.
Возвращает объект, который можно использовать для прохода по фрагментам символов, представленных в ReadOnlyMemory , созданном из данного экземпляра StringBuilder.
Служит хэш-функцией по умолчанию.
Возвращает объект Type для текущего экземпляра.
Вставляет строковое представление логического значения в данный экземпляр на указанную позицию символа.
Вставляет строковое представление указанного 8-разрядного целого числа без знака в данный экземпляр на указанную позицию символа.
Вставляет строковое представление указанного символа Юникода в данный экземпляр на указанную позицию символа.
Вставляет строковое представление указанного массива символов Юникода в данный экземпляр на указанную позицию символа.
Вставляет строковое представление указанного подмассива символов Юникода в данный экземпляр на указанную позицию символа.
Вставляет строковое представление десятичного числа в данный экземпляр на указанную позицию символа.
Вставляет строковое представление числа с плавающей запятой с удвоенной точностью в данный экземпляр на указанную позицию символа.
Вставляет строковое представление указанного 16-разрядного знакового целого числа в данный экземпляр на указанную позицию символа.
Вставляет строковое представление указанного 32-разрядного знакового целого числа в данный экземпляр на указанную позицию символа.
Вставляет строковое представление 64-разрядного знакового целого числа в данный экземпляр на указанную позицию символа.
Вставляет строковое представление объекта в данный экземпляр на указанную позицию символа.
Вставляет последовательность символов в этот экземпляр в заданной позиции символа.
Вставляет строковое представление указанного 8-разрядного знакового целого числа в данный экземпляр на указанную позицию символа.
Вставляет строковое представление числа одинарной точности с плавающей запятой с обычной точностью в данный экземпляр на указанную позицию символа.
Вставляет строку в данный экземпляр на указанную позицию символа.
Вставляет одну или более копий указанной строки в данный экземпляр на указанную позицию символа.
Вставляет строковое представление 16-разрядного целого числа без знака в данный экземпляр на указанную позицию символа.
Вставляет строковое представление 32-разрядного целого числа без знака в данный экземпляр на указанную позицию символа.
Вставляет строковое представление 64-разрядного целого числа без знака в данный экземпляр на указанную позицию символа.
Создает неполную копию текущего объекта Object.
Удаляет указанный диапазон символов из данного экземпляра.
Замещает все вхождения указанного символа в данном экземпляре на другой указанный знак.
Замещает все вхождения указанного символа в подстроке данного экземпляра на другой указанный символ.
Замещает все вхождения указанной строки в данном экземпляре на другую указанную строку.
Замещает все вхождения указанной строки в подстроке данного экземпляра на другую указанную строку.
Преобразует значение данного экземпляра в String.
Преобразует значение подстроки этого экземпляра в String.
Явные реализации интерфейса
Заполняет объект SerializationInfo данными даты, необходимыми для десериализации текущего объекта StringBuilder.