Wie kann man am besten eine Zeichenkette aus \t
's in C#
Ich lerne gerade C# und experimentiere mit verschiedenen Möglichkeiten, das Gleiche zu sagen.
Tabs(uint t)
ist eine Funktion, die eine string
con t
Betrag von \t
's
Zum Beispiel Tabs(3)
gibt zurück. "\t\t\t"
Welche dieser drei Möglichkeiten der Umsetzung Tabs(uint numTabs)
am besten ist?
Das hängt natürlich davon ab, was "am besten" bedeutet.
-
Die LINQ-Version besteht nur aus zwei Zeilen, was sehr angenehm ist. Aber sind die Aufrufe von Repeat und Aggregate unnötig zeit- und ressourcenaufwändig?
-
Le site
StringBuilder
Version ist sehr klar, aber ist dieStringBuilder
Klasse irgendwie langsamer? -
Le site
string
Version ist einfach, d. h. sie ist leicht zu verstehen. -
Spielt das überhaupt keine Rolle? Sind sie alle gleich?
Dies sind alles Fragen, die mir helfen sollen, ein besseres Gefühl für C# zu bekommen.
private string Tabs(uint numTabs)
{
IEnumerable<string> tabs = Enumerable.Repeat("\t", (int) numTabs);
return (numTabs > 0) ? tabs.Aggregate((sum, next) => sum + next) : "";
}
private string Tabs(uint numTabs)
{
StringBuilder sb = new StringBuilder();
for (uint i = 0; i < numTabs; i++)
sb.Append("\t");
return sb.ToString();
}
private string Tabs(uint numTabs)
{
string output = "";
for (uint i = 0; i < numTabs; i++)
{
output += '\t';
}
return output;
}