猿问

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

\t在C#中生成字符串s 的最佳方法是什么


我正在学习C#,并尝试用不同的方式说同一件事。


Tabs(uint t)是返回的功能string与t的量\t的


例如Tabs(3)回报"\t\t\t"


这三种实施方式中哪Tabs(uint numTabs)一种最佳?


当然,这取决于“最佳”的含义。


LINQ版本只有两行,这很好。但是,重复和聚合的调用是否不必要地浪费时间/资源?


该StringBuilder版本是很清楚的,但是是StringBuilder类莫名其妙慢?


该string版本是基本版本,这意味着它易于理解。


没关系吗?他们都平等吗?


这些都是可以帮助我更好地理解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; 

}


一只萌萌小番薯
浏览 1237回答 3
3回答

幕布斯6054654

那这个呢:string tabs = new String('\t', n);哪里n是您要重复字符串的次数。或更好:static string Tabs(int n){&nbsp; &nbsp; return new String('\t', n);}

繁星淼淼

string.Concat(Enumerable.Repeat("ab", 2));退货“阿巴布”和string.Concat(Enumerable.Repeat("a", 2));退货“ aa”从...

慕的地6264312

在.NET的所有版本中,您可以这样重复一个字符串:public static string Repeat(string value, int count){&nbsp; &nbsp; return new StringBuilder(value.Length * count).Insert(0, value, count).ToString();}重覆角色new String('\t', count)是您的最佳选择。
随时随地看视频慕课网APP
我要回答