.NET StringBuilder preappend a line

Art F picture Art F · Feb 18, 2014 · Viewed 23k times · Source

I know that the System.Text.StringBuilder in .NET has an AppendLine() method, however, I need to pre-append a line to the beginning of a StringBuilder. I know that you can use Insert() to append a string, but I can't seem to do that with a line, is there a next line character I can use? I am using VB.NET, so answers in that are preferable, but answers in C# are ok as well.

Answer

Selman Genç picture Selman Genç · Feb 18, 2014

is there a next line character I can use?

You can use Environment.NewLine

Gets the newline string defined for this environment.

For example:

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

Or even better you can write a simple extension method for that:

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

Then you can use it like this:

StringBuilder sb = new StringBuilder();
sb.AppendLine("bla bla bla..");
sb.Prepend(Environment.NewLine);