Feedback

C# - Zeilennummern zum Text hinzufügen

Veröffentlicht von am 8/6/2007
(1 Bewertungen)
Diese Methode fügt dem übergeben String Zeilennummern hinzu. Ideal z.B. für Quellcodedarstellung in einer RichTextBox.
/// <summary>
/// Adds the line numbers to text.
/// </summary>
/// <param name="text">The text.</param>
/// <returns></returns>
private string AddLineNumbersToText(string text)
{
    StringBuilder sb = new StringBuilder();
    string[] splitStrings = {"\r\n", "\r", "\n"};
    string[] lines = text.Split(splitStrings, StringSplitOptions.None);
    int lineCounter = 0;

    foreach (string s in lines)
    {
        sb.Append(lineCounter.ToString());
        sb.Append(":\t");
        sb.Append(s);
        sb.Append(Environment.NewLine);
        lineCounter++;
    }
    return sb.ToString();
}
Abgelegt unter Zeilennummern, Text, Editor.

2 Kommentare zum Snippet

Koopakiller schrieb am 1/18/2013:
Interesantes Snippet :)
Kleine Fehlerkorrektur: Die Trennzeichen müssen \r\n als 1. Eintrag enthalten:
string[] splitStrings = {"\r\n", "\r", "\n" };

Sonst könnten Leerzeilen in der Ausgabe landen, die dort nichts zu suchen haben.

Weil es mich interessierte testete ich ob der Code mit foreach oder mit einer for-Schleife schneller geht. foreach gingen ca. 10-20% schneller ;) Bei weniger als 1000 Zeilenumbrüchen allersings gab es keinen Unterschied im Millisekundenbereich.
Jan Welker schrieb am 1/18/2013:
Hallo Koopakiller,
danke für den Kommentar. An den Snippet kann ich mich ehrlich gesagt nicht mehr erinnern. Ich habe mal nachgesehen, den habe ich im August 2007 veröffentlicht :-)
Deine Fehlerkorrektur werde ich gleich übernehmen.
Jan
 

Logge dich ein, um hier zu kommentieren!