Класс StringBuilder

Хотя функция String.Format() позволяет генерировать строки в зависимости от значений других строк, это не самый эффективный способ построения строк. В среде времени выполнения существует класс StringBuilder, упрощающий решение этой задачи.

Класс StringBuilder поддерживает следующие свойства и функции:

Свойство

Описание

Capacity

Читает или задает текущую вместимость (количество символов, которые могут храниться в StringBuilder)

[]

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

Length

Читает или задает длину строки

MaxCapacity

Читает максимальную вместимость StringBuilder

Функция

Описание

Append()

Присоединяет строковое представление объекта

AppendFormat()

Присоединяет строковое представление объекта с использованием заданной форматной строки

EnsureCapacity()

Обеспечивает наличие в StringBuilder свободного места для хранения заданного количества символов

Insert()

Вставляет строковое представление заданного объекта в заданную позицию

Remove()

Удаляет заданные символы

Replace()

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

В следующем примере показано, как использовать класс StringBuilder для построения одной строки из нескольких отдельных строк:

using System;

using System.Text;

class Test

{

public static void Main()

{

string s = "I will not buy this record, it is scratched";

char[] separators = new char[] {' ', ','};

StringBuilder sb = new StringBuilder();

int number = 1;

foreach (string sub in s.Split(separators))

{

sb.AppendFormat("{0}: {1} ", number++, sub);

}

Console.WriteLine("{0}", sb);

}

}

Программа создает строку с пронумерованными словами и выводит следующий результат:

1: I 2: will 3: not 4: buy 5: this 6: record 7: 8: it 9: is 10: scratched

Поскольку при вызове Split() в качестве разделителей одновременно были указаны пробел и запятая, программа считает, что между запятой и следующим за ней пробелом находится слово, что приводит к пропуску в строке.

Предлагаю ознакомиться с аналогичными статьями: