好问题
Good  Question
  • 首 页
  • 问题
    • PHP
    • JAVA
    • CPlusPlus
    • C#
    • SQL
  • 关 于
  • 联 系
在C#中重复一个字符的最佳方法 关闭 返回上一级  

在C#中重复一个字符的最佳方法
+ 查看更多

发布日期:2018-02-23 10:30
分类:C#
浏览次数:105
什么是在C#中生成一个\t字符串的最佳方法
我正在学习C#并且尝试用不同的方式表达同样的意思
Tabs(uint t)是一个返回t个数量\t字符串的函数
举个例子,Tabs(3)返回"\t\t\t"
这三种实现Tabs(uint numTabs)的方法中哪一种最好?
当然这取决于“最好”的意义。
 
  1. LINQ版本只有两行,这是很好的。但是重复的调用和聚合造成了不必要的时间/资源消耗?
  2. StringBuilder版本很清晰,但是StringBuilder类不知怎么的速度比较慢?
  3. String版本是基础的,这意味着它很容易理解。
 
这根本不重要吗? 它们都相同吗?
这些都是为了帮助我更好地感悟C#的问题。
private string Tabs(uint numTabs)
{
    IEnumerable 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; 
}
 
回答:
 
这个怎么样?
string tabs = new String('\t', n);
其中n是要重复字符串的次数。
或者更好的是这样:
static string Tabs(int n)
{
    return new String('\t', n);
}
上一篇LINQ的Distinct()在特定属性上的使用
我怎样读取一个嵌入式的text文件?下一篇
下一篇我怎样读取一个嵌入式的text文件?

最新文章

  • 函数`__construct`用来干嘛的
    发布日期:2018-03-26
  • 通过访客的IP得到他们的地区
    发布日期:2018-03-26
  • 合并两个PHP对象的最好的方法是什么?
    发布日期:2018-03-26
  • 该如何把一该如何把一个对象转化成数组?
    发布日期:2018-03-26
  • 什么是输出缓冲区?
    发布日期:2018-03-26
  • 在PHP中怎么把用逗号分隔的字符串分隔在一个数组里?
    发布日期:2018-03-26
  • 在PHP中使用foreach循环时查找数组的最后一个元素
    发布日期:2018-03-26
关于好问
收集整理一些有用的问题和回答,造福中国的程序旺和IT喵们!
友情链接
起飞页 
相关信息
版权声明
Copyright © 2016 - 2022  苏州卡达网络科技有限公司 备案号:苏ICP备09008221号