Вопрос по stringbuilder, vb.net, .net, c# – .NET StringBuilder предварительно добавляет строку

16

Я знаю чтоSystem.Text.StringBuilder в .NET естьAppendLine() Метод, однако, мне нужно предварительно добавить строку в началеStringBuilder, Я знаю, что вы можете использоватьInsert() добавить строку, но я не могу сделать это со строкой, есть ли следующий символ строки, который я могу использовать? Я использую VB.NET, так что ответы в этом предпочтительнее, но ответы в C # также в порядке.

просто добавь& vbcrlf в конце строки вы хотите предварительно добавить. John Bustos

Ваш Ответ

2   ответа
2

Ты можешь использоватьAppendFormat добавить новую строку, где когда-либо вам нравится.

Dim sb As New StringBuilder()
sb.AppendFormat("{0}Foo Bacon", Environment.NewLine)
Это не отвечает на вопрос. Он по-прежнему добавляет формат в конец StringBuilder. Вопрос заключался в том, как его добавить, добавив его прямо перед каждым существующим контентом. Wolfsblvt
Хороший ответ зависит от того, использует ли пользователь это только один раз или часто, если он используется часто, другой ответ будет более читабельным. user3141326
34

есть ли следующий символ строки, который я могу использовать?

Ты можешь использоватьEnvironment.NewLine

Получает строку новой строки, определенную для этой среды.

Например:

StringBuilder sb = new StringBuilder();
sb.AppendLine("bla bla bla..");
sb.Insert(0, Environment.NewLine);

Или даже лучше, вы можете написать простой метод расширения для этого:

public static class MyExtensions
{
    public static StringBuilder Prepend(this StringBuilder sb, string content)
    {
        return sb.Insert(0, content);
    }
}

Тогда вы можете использовать это так:

StringBuilder sb = new StringBuilder();
sb.AppendLine("bla bla bla..");
sb.Prepend(Environment.NewLine);
Идеальный ответ для читабельности - было бы еще лучше, если бы вы добавили PrependLine с sb.Prepend (Environment.NewLine) .Prepend (content) аналогично AppendLine user3141326
+1 за неиспользование\n Mike Christensen

Похожие вопросы