C # или Java: добавить строки в StringBuilder? - PullRequest
92 голосов
/ 11 апреля 2009

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

Ответы [ 12 ]

1 голос
/ 21 июня 2013

Вы можете создать расширение для StringBuilder с помощью простого класса:

namespace Application.Code.Helpers
{
    public static class StringBuilderExtensions
    {
        #region Methods

        public static void Prepend(this StringBuilder sb, string value)
        {
            sb.Insert(0, value);
        }

        public static void PrependLine(this StringBuilder sb, string value)
        {
            sb.Insert(0, value + Environment.NewLine);
        }

        #endregion
    }
}

Затем просто добавьте:

using Application.Code.Helpers;

В начало любого класса, в котором вы хотите использовать StringBuilder, и всякий раз, когда вы используете intelli-sense с переменной StringBuilder, будут отображаться методы Prepend и PrependLine. Просто помните, что когда вы используете Prepend, вам нужно будет выполнить Prepend в обратном порядке, чем если бы вы использовали Append.

0 голосов
/ 17 августа 2012

Это должно работать:

aStringBuilder = "newText" + aStringBuilder; 
...