Прочитать на английском

Поделиться через


StringBuilder Класс

Определение

Представляет изменяемую строку символов. Этот класс не может быть унаследован.

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
Наследование
StringBuilder
Атрибуты
Реализации

Примеры

В следующем примере показано, как вызывать многие методы, определенные классом StringBuilder.

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{0}{1}", 'J', 'k');

        // Display the number of characters in the StringBuilder and its string.
        Console.WriteLine("{0} chars: {1}", 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("{0} chars: {1}", sb.Length, sb.ToString());
    }
}

// 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(Int32)

Инициализирует новый экземпляр класса StringBuilder с помощью указанной емкости.

StringBuilder(Int32, Int32)

Инициализирует новый экземпляр класса StringBuilder, который начинается с указанной емкости и может увеличиваться до указанного максимума.

StringBuilder(String)

Инициализирует новый экземпляр класса StringBuilder с помощью указанной строки.

StringBuilder(String, Int32)

Инициализирует новый экземпляр класса StringBuilder с помощью указанной строки и емкости.

StringBuilder(String, Int32, Int32, Int32)

Инициализирует новый экземпляр класса StringBuilder из указанной подстроки и емкости.

Свойства

Capacity

Возвращает или задает максимальное количество символов, которые могут содержаться в памяти, выделенной текущим экземпляром.

Chars[Int32]

Возвращает или задает символ в указанной позиции символа в этом экземпляре.

Length

Возвращает или задает длину текущего объекта StringBuilder.

MaxCapacity

Получает максимальную емкость этого экземпляра.

Методы

Append(Boolean)

Добавляет строковое представление указанного логического значения в этот экземпляр.

Append(Byte)

Добавляет строковое представление указанного 8-разрядного целого числа без знака в этот экземпляр.

Append(Char)

Добавляет строковое представление указанного объекта Char в этот экземпляр.

Append(Char*, Int32)

Добавляет массив символов Юникода, начиная с указанного адреса в этот экземпляр.

Append(Char, Int32)

Добавляет указанное количество копий строкового представления символа Юникода к этому экземпляру.

Append(Char[])

Добавляет строковое представление символов Юникода в указанном массиве к этому экземпляру.

Append(Char[], Int32, Int32)

Добавляет строковое представление указанного подаррейства символов Юникода к этому экземпляру.

Append(Decimal)

Добавляет строковое представление указанного десятичного числа в этот экземпляр.

Append(Double)

Добавляет строковое представление указанного числа с плавающей запятой двойной точности к этому экземпляру.

Append(IFormatProvider, StringBuilder+AppendInterpolatedStringHandler)

Добавляет указанную интерполированную строку в этот экземпляр с помощью указанного формата.

Append(Int16)

Добавляет строковое представление указанного 16-разрядного целого числа со знаком в этот экземпляр.

Append(Int32)

Добавляет строковое представление указанного 32-разрядного целого числа со знаком к этому экземпляру.

Append(Int64)

Добавляет строковое представление указанного 64-разрядного целого числа со знаком в этот экземпляр.

Append(Object)

Добавляет строковое представление указанного объекта к этому экземпляру.

Append(ReadOnlyMemory<Char>)

Добавляет строковое представление указанной области памяти только для чтения в этот экземпляр.

Append(ReadOnlySpan<Char>)

Добавляет строковое представление указанного диапазона символов только для чтения в этот экземпляр.

Append(SByte)

Добавляет строковое представление указанного 8-разрядного целого числа со знаком в этот экземпляр.

Append(Single)

Добавляет строковое представление указанного числа с плавающей запятой с одной точностью к этому экземпляру.

Append(String)

Добавляет копию указанной строки в этот экземпляр.

Append(String, Int32, Int32)

Добавляет копию указанной подстроки к этому экземпляру.

Append(StringBuilder)

Добавляет строковое представление указанного построителя строк в этот экземпляр.

Append(StringBuilder, Int32, Int32)

Добавляет копию подстроки в указанный построитель строк в этот экземпляр.

Append(StringBuilder+AppendInterpolatedStringHandler)

Добавляет указанную интерполированную строку в этот экземпляр.

Append(UInt16)

Добавляет строковое представление указанного 16-разрядного целого числа без знака к этому экземпляру.

Append(UInt32)

Добавляет строковое представление указанного 32-разрядного целого числа без знака к этому экземпляру.

Append(UInt64)

Добавляет строковое представление указанного 64-разрядного целого числа без знака в этот экземпляр.

AppendFormat(IFormatProvider, CompositeFormat, Object[])

Добавляет строку, возвращаемую путем обработки составной строки форматирования, содержащей к этому экземпляру ноль или больше элементов формата. Каждый элемент формата заменяется строковым представлением любого из аргументов с помощью указанного поставщика формата.

AppendFormat(IFormatProvider, CompositeFormat, ReadOnlySpan<Object>)

Добавляет строку, возвращаемую путем обработки составной строки форматирования, содержащей к этому экземпляру ноль или больше элементов формата. Каждый элемент формата заменяется строковым представлением любого из аргументов с помощью указанного поставщика формата.

AppendFormat(IFormatProvider, String, Object)

Добавляет строку, возвращаемую путем обработки составной строки форматирования, содержащей к этому экземпляру ноль или больше элементов формата. Каждый элемент формата заменяется строковым представлением одного аргумента с помощью указанного поставщика формата.

AppendFormat(IFormatProvider, String, Object, Object)

Добавляет строку, возвращаемую путем обработки составной строки форматирования, содержащей к этому экземпляру ноль или больше элементов формата. Каждый элемент формата заменяется строковым представлением одного из двух аргументов с помощью указанного поставщика формата.

AppendFormat(IFormatProvider, String, Object, Object, Object)

Добавляет строку, возвращаемую путем обработки составной строки форматирования, содержащей к этому экземпляру ноль или больше элементов формата. Каждый элемент формата заменяется строковым представлением любого из трех аргументов с помощью указанного поставщика формата.

AppendFormat(IFormatProvider, String, Object[])

Добавляет строку, возвращаемую путем обработки составной строки форматирования, содержащей к этому экземпляру ноль или больше элементов формата. Каждый элемент формата заменяется строковым представлением соответствующего аргумента в массиве параметров с помощью указанного поставщика формата.

AppendFormat(IFormatProvider, String, ReadOnlySpan<Object>)

Добавляет строку, возвращаемую путем обработки составной строки форматирования, содержащей к этому экземпляру ноль или больше элементов формата. Каждый элемент формата заменяется строковым представлением соответствующего аргумента в диапазоне параметров с помощью указанного поставщика формата.

AppendFormat(String, Object)

Добавляет строку, возвращаемую путем обработки составной строки форматирования, содержащей к этому экземпляру ноль или больше элементов формата. Каждый элемент формата заменяется строковым представлением одного аргумента.

AppendFormat(String, Object, Object)

Добавляет строку, возвращаемую путем обработки составной строки форматирования, содержащей к этому экземпляру ноль или больше элементов формата. Каждый элемент формата заменяется строковым представлением одного из двух аргументов.

AppendFormat(String, Object, Object, Object)

Добавляет строку, возвращаемую путем обработки составной строки форматирования, содержащей к этому экземпляру ноль или больше элементов формата. Каждый элемент формата заменяется строковым представлением любого из трех аргументов.

AppendFormat(String, Object[])

Добавляет строку, возвращаемую путем обработки составной строки форматирования, содержащей к этому экземпляру ноль или больше элементов формата. Каждый элемент формата заменяется строковым представлением соответствующего аргумента в массиве параметров.

AppendFormat(String, ReadOnlySpan<Object>)

Добавляет строку, возвращаемую путем обработки составной строки форматирования, содержащей к этому экземпляру ноль или больше элементов формата. Каждый элемент формата заменяется строковым представлением соответствующего аргумента в диапазоне параметров.

AppendFormat<TArg0,TArg1,TArg2>(IFormatProvider, CompositeFormat, TArg0, TArg1, TArg2)

Добавляет строку, возвращаемую путем обработки составной строки форматирования, содержащей к этому экземпляру ноль или больше элементов формата. Каждый элемент формата заменяется строковым представлением любого из аргументов с помощью указанного поставщика формата.

AppendFormat<TArg0,TArg1>(IFormatProvider, CompositeFormat, TArg0, TArg1)

Добавляет строку, возвращаемую путем обработки составной строки форматирования, содержащей к этому экземпляру ноль или больше элементов формата. Каждый элемент формата заменяется строковым представлением любого из аргументов с помощью указанного поставщика формата.

AppendFormat<TArg0>(IFormatProvider, CompositeFormat, TArg0)

Добавляет строку, возвращаемую путем обработки составной строки форматирования, содержащей к этому экземпляру ноль или больше элементов формата. Каждый элемент формата заменяется строковым представлением любого из аргументов с помощью указанного поставщика формата.

AppendJoin(Char, Object[])

Объединяет строковые представления элементов в предоставленном массиве объектов, используя указанный разделитель символов между каждым элементом, а затем добавляет результат к текущему экземпляру построителя строк.

AppendJoin(Char, ReadOnlySpan<Object>)

Объединяет строковые представления элементов в предоставленном диапазоне объектов, используя указанный разделитель символов между каждым элементом, а затем добавляет результат к текущему экземпляру построителя строк.

AppendJoin(Char, ReadOnlySpan<String>)

Объединяет строки предоставленного диапазона, используя указанный разделитель символов между каждой строкой, а затем добавляет результат к текущему экземпляру построителя строк.

AppendJoin(Char, String[])

Объединяет строки предоставленного массива, используя указанный разделитель символов между каждой строкой, а затем добавляет результат к текущему экземпляру построителя строк.

AppendJoin(String, Object[])

Объединяет строковые представления элементов в предоставленном массиве объектов, используя указанный разделитель между каждым элементом, а затем добавляет результат к текущему экземпляру построителя строк.

AppendJoin(String, ReadOnlySpan<Object>)

Объединяет строковые представления элементов в предоставленном диапазоне объектов, используя указанный разделитель между каждым элементом, а затем добавляет результат к текущему экземпляру построителя строк.

AppendJoin(String, ReadOnlySpan<String>)

Объединяет строки предоставленного диапазона, используя указанный разделитель между каждой строкой, а затем добавляет результат к текущему экземпляру построителя строк.

AppendJoin(String, String[])

Объединяет строки предоставленного массива, используя указанный разделитель между каждой строкой, а затем добавляет результат к текущему экземпляру построителя строк.

AppendJoin<T>(Char, IEnumerable<T>)

Объединяет и добавляет элементы коллекции, используя указанный разделитель символов между каждым элементом.

AppendJoin<T>(String, IEnumerable<T>)

Объединяет и добавляет элементы коллекции, используя указанный разделитель между каждым элементом.

AppendLine()

Добавляет конечный элемент строки по умолчанию к концу текущего объекта StringBuilder.

AppendLine(IFormatProvider, StringBuilder+AppendInterpolatedStringHandler)

Добавляет указанную интерполированную строку с помощью указанного формата, за которым следует конечный элемент строки по умолчанию, к концу текущего объекта StringBuilder.

AppendLine(String)

Добавляет копию указанной строки, за которой следует конечный элемент строки по умолчанию, в конец текущего объекта StringBuilder.

AppendLine(StringBuilder+AppendInterpolatedStringHandler)

Добавляет указанную интерполированную строку, за которой следует конечный элемент строки по умолчанию в конец текущего объекта StringBuilder.

Clear()

Удаляет все символы из текущего экземпляра StringBuilder.

CopyTo(Int32, Char[], Int32, Int32)

Копирует символы из указанного сегмента этого экземпляра в указанный сегмент целевого Char массива.

CopyTo(Int32, Span<Char>, Int32)

Копирует символы из указанного сегмента этого экземпляра в целевой Char диапазон.

EnsureCapacity(Int32)

Гарантирует, что емкость этого экземпляра StringBuilder не менее указанного значения.

Equals(Object)

Определяет, равен ли указанный объект текущему объекту.

(Унаследовано от Object)
Equals(ReadOnlySpan<Char>)

Возвращает значение, указывающее, равны ли символы в этом экземпляре символам в указанном диапазоне символов только для чтения.

Equals(StringBuilder)

Возвращает значение, указывающее, равен ли этот экземпляр указанному объекту.

GetChunks()

Возвращает объект, который можно использовать для итерации с помощью блоков символов, представленных в ReadOnlyMemory<Char> созданном из этого экземпляра StringBuilder.

GetHashCode()

Служит хэш-функцией по умолчанию.

(Унаследовано от Object)
GetType()

Возвращает Type текущего экземпляра.

(Унаследовано от Object)
Insert(Int32, Boolean)

Вставляет строковое представление логического значения в этот экземпляр по указанной позиции символа.

Insert(Int32, Byte)

Вставляет строковое представление указанного 8-разрядного целого числа без знака в этот экземпляр в указанной позиции символа.

Insert(Int32, Char)

Вставляет строковое представление указанного символа Юникода в этот экземпляр в указанной позиции символа.

Insert(Int32, Char[])

Вставляет строковое представление указанного массива символов Юникода в этот экземпляр по указанной позиции символов.

Insert(Int32, Char[], Int32, Int32)

Вставляет строковое представление указанных вложенных символов Юникода в этот экземпляр по указанной позиции символов.

Insert(Int32, Decimal)

Вставляет строковое представление десятичного числа в этот экземпляр в указанной позиции символа.

Insert(Int32, Double)

Вставляет строковое представление числа с плавающей запятой двойной точности в этот экземпляр в указанной позиции символа.

Insert(Int32, Int16)

Вставляет строковое представление указанного 16-разрядного целого числа со знаком в этот экземпляр по указанной позиции символа.

Insert(Int32, Int32)

Вставляет строковое представление указанного 32-разрядного целого числа со знаком в этот экземпляр в указанной позиции символа.

Insert(Int32, Int64)

Вставляет строковое представление 64-разрядного целого числа со знаком в этот экземпляр в указанной позиции символа.

Insert(Int32, Object)

Вставляет строковое представление объекта в этот экземпляр по указанной позиции символа.

Insert(Int32, ReadOnlySpan<Char>)

Вставляет последовательность символов в этот экземпляр по указанному расположению символов.

Insert(Int32, SByte)

Вставляет строковое представление указанного 8-разрядного целого числа со знаком в этот экземпляр в указанной позиции символа.

Insert(Int32, Single)

Вставляет строковое представление числа с плавающей запятой с одной точностью в этот экземпляр в указанной позиции символа.

Insert(Int32, String)

Вставляет строку в этот экземпляр в указанное положение символов.

Insert(Int32, String, Int32)

Вставляет одну или несколько копий указанной строки в этот экземпляр в указанной позиции символа.

Insert(Int32, UInt16)

Вставляет строковое представление 16-разрядного целого числа без знака в этот экземпляр в указанной позиции символа.

Insert(Int32, UInt32)

Вставляет строковое представление 32-разрядного целого числа без знака в этот экземпляр в указанной позиции символа.

Insert(Int32, UInt64)

Вставляет строковое представление 64-разрядного целого числа без знака в этот экземпляр в указанной позиции символа.

MemberwiseClone()

Создает неглубокую копию текущей Object.

(Унаследовано от Object)
Remove(Int32, Int32)

Удаляет указанный диапазон символов из этого экземпляра.

Replace(Char, Char)

Заменяет все вхождения указанного символа в этом экземпляре другим указанным символом.

Replace(Char, Char, Int32, Int32)

Заменяет в подстроку этого экземпляра все вхождения указанного символа другим заданным символом.

Replace(ReadOnlySpan<Char>, ReadOnlySpan<Char>)

Заменяет все экземпляры одного диапазона символов только для чтения другим в этом построителе.

Replace(ReadOnlySpan<Char>, ReadOnlySpan<Char>, Int32, Int32)

Заменяет все экземпляры одного диапазона символов только для чтения другим в составе этого построителя.

Replace(String, String)

Заменяет все вхождения указанной строки в этом экземпляре другой указанной строкой.

Replace(String, String, Int32, Int32)

Заменяет в подстроке этого экземпляра все вхождения указанной строки другой указанной строкой.

ToString()

Преобразует значение этого экземпляра в String.

ToString(Int32, Int32)

Преобразует значение подстроки этого экземпляра в String.

Явные реализации интерфейса

ISerializable.GetObjectData(SerializationInfo, StreamingContext)

Заполняет объект SerializationInfo данными, необходимыми для десериализации текущего объекта StringBuilder.

Методы расширения

Append(StringBuilder, StringSegment)

Добавьте указанный StringSegment в StringBuilder.

AppendRedacted(StringBuilder, Redactor, ReadOnlySpan<Char>)

Редактирует потенциально конфиденциальные данные и добавляет его в экземпляр StringBuilder.

AppendRedacted(StringBuilder, Redactor, String)

Редактирует потенциально конфиденциальные данные и добавляет его в экземпляр StringBuilder.

Применяется к

Продукт Версии
.NET Core 1.0, Core 1.1, Core 2.0, Core 2.1, Core 2.2, Core 3.0, Core 3.1, 5, 6, 7, 8, 9
.NET Framework 1.1, 2.0, 3.0, 3.5, 4.0, 4.5, 4.5.1, 4.5.2, 4.6, 4.6.1, 4.6.2, 4.7, 4.7.1, 4.7.2, 4.8, 4.8.1
.NET Standard 1.0, 1.1, 1.2, 1.3, 1.4, 1.5, 1.6, 2.0, 2.1
UWP 10.0

См. также раздел