C#で文字を繰り返す最良の方法 質問する

C#で文字を繰り返す最良の方法 質問する

\tC# で文字列を生成する最良の方法は何ですか?

私は C# を学習しており、同じことを表現するためのさまざまな方法を試しています。

Tabs(uint t)は、 'sの量stringを返す関数です。t\t

たとえば、Tabs(3)返品"\t\t\t"

これら 3 つの実装方法のうちどれがTabs(uint numTabs)最適ですか?

もちろん、「最良」が何を意味するかによって異なります。

  1. LINQ バージョンは 2 行だけなので、便利です。しかし、Repeat と Aggregate の呼び出しは、不必要に時間やリソースを消費していませんか?

  2. バージョンStringBuilderは非常に明確ですが、StringBuilderクラスはどういうわけか遅いですか?

  3. 基本的なバージョンstringなので、理解しやすいです。

  4. それは全く問題ではないのでしょうか? すべて平等なのでしょうか?

これらはすべて、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;
}

ベストアンサー1

これはどうですか:

string tabs = new string('\t', n);

n文字列を繰り返す回数を指定します。

あるいはもっと良いのは:

static string Tabs(int n)
{
    return new string('\t', n);
}

おすすめ記事