Какой лучший способ создать строку из \t
в C #
Я изучаю C # и экспериментирую с разными способами сказать одно и то же.
Tabs(uint t)
- это функция, которая возвращает string
с t
количеством \t
'
Например Tabs(3)
возвращает "\t\t\t"
Какой из этих трех способов реализации Tabs(uint numTabs)
является лучшим?
Конечно, это зависит от того, что означает "лучший".
Версия LINQ состоит всего из двух строк, что приятно. Но являются ли вызовы Repeat and 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;
}