在C#中生成\\t
字符串的最佳方法是什么 数组
我正在学习C#,并尝试用不一样的方式说同一件事。 函数
Tabs(uint t)
是一个函数,该函数返回t
等于\\t
的string
学习
例如Tabs(3)
返回"\\t\\t\\t"
ui
这三种实现Tabs(uint numTabs)
方式中哪种最好? this
固然,这取决于“最佳”的含义。 spa
LINQ版本只有两行,这很好。 可是,重复和聚合的调用是否没必要要地浪费时间/资源? .net
StringBuilder
版本很是清晰,但StringBuilder
类的速度是否稍慢? code
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; }
string.Concat(Enumerable.Repeat("ab", 2));
退货
“阿巴布”
和
string.Concat(Enumerable.Repeat("a", 2));
退货
“ aa”
从...
使用String.Concat
和Enumerable.Repeat
将比使用String.Join
public static Repeat(this String pattern, int count) { return String.Concat(Enumerable.Repeat(pattern, count)); }
假设您要重复n次,能够使用;
String.Empty.PadRight(n,'\t')
var str = new string(Enumerable.Repeat('\t', numTabs).ToArray());
我知道这个问题已经有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(',');
退货
{“你好你好你好”, ””}
把事情简单化。