Der beste Weg, um ein Zeichen in C # zu wiederholen

Was es ist der beste Weg zur Erzeugung einer Zeichenfolge von \t's in C#

Lerne ich C# und das Experimentieren mit verschiedenen Möglichkeiten, zu sagen, die gleiche Sache.

Tabs(uint t) ist eine Funktion zurückgibt, die ein string mit t Höhe von \t's

Beispielsweise Tabs(3) zurück "\t\t\t"

Welche dieser drei Möglichkeiten der Umsetzung Tabs(uint numTabs) ist am besten?

Natürlich, hängt davon ab, was "beste" bedeutet.

  1. LINQ-version ist nur zwei Zeilen, das ist schön. Aber die Aufrufe, zu Wiederholen und zu Aggregieren unnötig Zeit/Ressourcen verschlingen?
  2. Den StringBuilder version ist klar, aber ist die StringBuilder Klasse irgendwie langsamer?
  3. Den string version basic, was bedeutet, es ist leicht zu verstehen.
  4. Spielt es überhaupt keine Rolle? Sind Sie alle gleich?

Alles Fragen, die mir dabei helfen, ein besseres Gefühl für C#.

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; 
}

InformationsquelleAutor der Frage Alex Baranosky | 2009-01-04

Schreibe einen Kommentar