在C#中生成一串\t
的最佳方法是什么?
我正在学习C#,并尝试用不同的方式表达相同的意思。
Tabs(uint t)
是一个返回带有t
个\t
的string
的函数。
例如,Tabs(3)
返回"\t\t\t"
这三种实现Tabs(uint numTabs)
的方式哪种最好呢?
当然,这取决于“最好”的含义。
LINQ版本只有两行,很好。 但是,对Repeat和Aggregate的调用是否不必要地消耗时间/资源?
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;
}