Feedback

C# - Zeilennummern zum Text hinzufügen

Veröffentlicht von am 06.08.2007
(1 Bewertungen)
Diese Methode fügt dem übergeben String Zeilennummern hinzu. Ideal z.B. für Quellcodedarstellung in einer RichTextBox.
GFU-Schulungen  [Anzeige]

Visual Studio Team Foundation Server 2017/2015 (TFS) für Administratoren - Kompakt

Nach dieser Schulung beherrschen Sie die Grundlagen des TFS. Sie erledigen administrative Aufgaben schnell und sicher.

VB.NET Komplett

Sie stehen vo der Aufgabe, individuelle Anwendungen für Windows zu schreiben. Hier ist VB.NET die optimale Sprache. Sie erlernt sich recht leicht und passt sich komplett in die .NET Umgebung von Microsoft ein. Nach der Schulung entwickeln Sie anwenderfreundliche Programme in VB.NET . Mit den objektorientierten Modellen in VB.NET erzeugen Sie außerdem wiederverwendbare Komponenten.

/// <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 18.01.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 18.01.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!