Какой это лучший способ для генерации строки \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;
}