Was ist der beste Weg, um eine Zeichenfolge von \t
's in C # zu generieren?
Ich lerne C # und experimentiere mit verschiedenen Arten, dasselbe zu sagen.
Tabs(uint t)
ist eine Funktion, die a string
mit der t
Anzahl von \t
's zurückgibt
Zum Beispiel Tabs(3)
kehrt zurück"\t\t\t"
Welche dieser drei Implementierungsmethoden Tabs(uint numTabs)
ist die beste?
Das hängt natürlich davon ab, was "am besten" bedeutet.
Die LINQ-Version besteht nur aus zwei Zeilen, was sehr schön ist. Aber sind die Aufrufe zum Wiederholen und Aggregieren unnötig zeit- und ressourcenintensiv?
Die
StringBuilder
Version ist sehr klar, aber ist dieStringBuilder
Klasse irgendwie langsamer?Die
string
Version ist einfach, was bedeutet, dass sie leicht zu verstehen ist.Ist das überhaupt nicht wichtig? 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;
}