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