Sprache: C#
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 = {"rn", "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();
}
/// <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 = {"rn", "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();
}
Alte URL:
/snippet/zeilennummern-zum-text-hinzufuegen/600
Interesantes Snippet 🙂
Kleine [b]Fehlerkorrektur[/b]: Die Trennzeichen müssen rn als 1. Eintrag enthalten:
[code]string[] splitStrings = {„rn“, „r“, „n“ };[/code]
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.
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