在C#中重复字符的最佳方法
在C#中生成t
字符串的最佳方式是什么?
我正在学习C#并尝试用不同的方式说同一件事。
Tabs(uint t)
是一个返回string
t
量为t
的函数
例如, Tabs(3)
返回"ttt"
实现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;
}
那这个呢:
string tabs = new String('t', n);
其中n
是您想要重复字符串的次数。
或更好:
static string Tabs(int n)
{
return new String('t', n);
}
在.NET的所有版本中,您都可以重复一个字符串:
public static string Repeat(string value, int count)
{
return new StringBuilder(value.Length * count).Insert(0, value, count).ToString();
}
重复一个字符, new String('t', count)
是你最好的选择。 查看@CMS的答案。
string.Concat(Enumerable.Repeat("ab", 2));
返回
“ABAB”
和
string.Concat(Enumerable.Repeat("a", 2));
返回
“AA”
从...
是否有一个内置函数重复字符串或字符在.NET中?
链接地址: http://www.djcxy.com/p/3567.html上一篇: Best way to repeat a character in C#
下一篇: Should 'using' directives be inside or outside the namespace?