Heim >Backend-Entwicklung >C++ >Was ist der schnellste Weg, ein Zeichen in C# zu wiederholen?
In C# gibt es verschiedene Ansätze zum Erstellen einer Zeichenfolge, die aus wiederholten Zeichen besteht. Um die effizienteste und geeignetste Methode zu ermitteln, schauen wir uns die Optionen genauer an:
LINQ-Version:
private string Tabs(uint numTabs) { IEnumerable<string> tabs = Enumerable.Repeat("\t", (int) numTabs); return (numTabs > 0) ? tabs.Aggregate((sum, next) => sum + next) : ""; }
Der LINQ-Ansatz ist zwar prägnant, verursacht aber unnötigen Overhead aufgrund der Verwendung von LINQ-Operationen (Repeat, Aggregate).
StringBuilder Version:
private string Tabs(uint numTabs) { StringBuilder sb = new StringBuilder(); for (uint i = 0; i < numTabs; i++) sb.Append("\t"); return sb.ToString(); }
Der StringBuilder-Ansatz ist unkompliziert, kann jedoch im Vergleich zu anderen Optionen aufgrund der Speicherzuweisungen für das StringBuilder-Objekt etwas langsamer sein.
String-Version:
private string Tabs(uint numTabs) { string output = ""; for (uint i = 0; i < numTabs; i++) { output += '\t'; } return output; }
Die String-Version ist einfach und erfordert keine zusätzlichen Klasseninstanzen. Dies ist eine gute Option, wenn Einfachheit und Effizienz Priorität haben.
Optimierte Lösung:
Um die String-Version weiter zu optimieren, sollten Sie die Verwendung der folgenden Syntax in Betracht ziehen:
static string Tabs(int n) { return new string('\t', n); }
Diese Syntax macht die Schleife überflüssig und bietet eine direkte und effiziente Möglichkeit, eine Zeichenfolge der gewünschten Länge zu generieren, die das angegebene enthält Charakter.
Fazit:
Die optimale Wahl unter diesen Optionen hängt von den spezifischen Anforderungen Ihrer Anwendung ab. Für leistungskritische Szenarien empfiehlt sich die optimierte String-Version oder die neue String-Syntax. Für grundlegende Szenarien, in denen Einfachheit und Lesbarkeit wichtig sind, ist die Basis-String-Version geeignet.
Das obige ist der detaillierte Inhalt vonWas ist der schnellste Weg, ein Zeichen in C# zu wiederholen?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!