为了账号安全,请及时绑定邮箱和手机立即绑定

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

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

一只萌萌小番薯 2019-10-14 10:40:31
\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; }
查看完整描述

3 回答

?
幕布斯6054654

TA贡献1876条经验 获得超7个赞

那这个呢:


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

哪里n是您要重复字符串的次数。


或更好:


static string Tabs(int n)

{

    return new String('\t', n);

}


查看完整回答
反对 回复 2019-10-14
?
繁星淼淼

TA贡献1775条经验 获得超11个赞

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

退货


“阿巴布”



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

退货


“ aa”


从...


查看完整回答
反对 回复 2019-10-14
?
慕的地6264312

TA贡献1817条经验 获得超6个赞

在.NET的所有版本中,您可以这样重复一个字符串:


public static string Repeat(string value, int count)

{

    return new StringBuilder(value.Length * count).Insert(0, value, count).ToString();

}

重覆角色new String('\t', count)是您的最佳选择。


查看完整回答
反对 回复 2019-10-14
  • 3 回答
  • 0 关注
  • 1235 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信