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]

ASP.NET 2.0 und 3.5

Dieser Kurs vermittelt Ihnen alle Erweiterungen von Microsoft ASP.NET 2.0. Zu diesen zählen u. a. Data Bindung, Master Pages, und Security.

ASP.NET Core und Angular Komplett für .NET-Entwickler

Sie  lernen in drei (3) Tagen wie man mit  ASP.NET Core und den Technologien  MVC, Entity Framework, WebAPI und  Razor professionelle sowie moderne  Web-Anwendungsarchitekturen aufbaut.  Die Schulung ist der perfekte  Einstieg um insbesondere datengetriebene  und präsentationsorientierte  Applikationen auf Basis der robusten und  skalierbaren ASP.NET Core  Plattform zu erstellen. Nach der Veranstaltung kennen Sie die Konzepte von Angular und können Angular in neue und bestehende ASP.NET-Anwendungen einsetzen.

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