在C#中重複字符的最佳方法

在C#中生成\\t字符串的最佳方法是什麼 數組

我正在學習C#,並嘗試用不一樣的方式說同一件事。 函數

Tabs(uint t)是一個函數,該函數返回t等於\\tstring 學習

例如Tabs(3)返回"\\t\\t\\t" ui

這三種實現Tabs(uint numTabs)方式中哪種最好? this

固然,這取決於「最佳」的含義。 spa

  1. LINQ版本只有兩行,這很好。 可是,重複和聚合的調用是否沒必要要地浪費時間/資源? .net

  2. StringBuilder版本很是清晰,但StringBuilder類的速度是否稍慢? code

  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.Concat(Enumerable.Repeat("ab", 2));

退貨

「阿巴布」

string.Concat(Enumerable.Repeat("a", 2));

退貨

「 aa」

從...

是否有內置函數在.net中重複字符串或char?


#2樓

使用String.ConcatEnumerable.Repeat將比使用String.Join

public static Repeat(this String pattern, int count)
{
    return String.Concat(Enumerable.Repeat(pattern, count));
}

#3樓

假設您要重複n次,能夠使用;

String.Empty.PadRight(n,'\t')

#4樓

var str = new string(Enumerable.Repeat('\t', numTabs).ToArray());

#5樓

我知道這個問題已經有5年了,可是有一種簡單的方法能夠重複在.Net 2.0中使用的字符串。

要重複一個字符串:

string repeated = new String('+', 3).Replace("+", "Hello, ");

退貨

「你好你好你好, 」

要將字符串重複做爲數組:

// Two line version.
string repeated = new String('+', 3).Replace("+", "Hello,");
string[] repeatedArray = repeated.Split(',');

// One line version.
string[] repeatedArray = new String('+', 3).Replace("+", "Hello,").Split(',');

退貨

{「你好你好你好」, 」」}

把事情簡單化。

相關文章
相關標籤/搜索