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