Qual é a melhor maneira de gerar uma sequência de \t
's em c #
Estou aprendendo c # e experimentando maneiras diferentes de dizer a mesma coisa.
Tabs(uint t)
é uma função que retorna a string
com t
quantidade de \t
's
Por exemplo, Tabs(3)
retorna"\t\t\t"
Qual dessas três maneiras de implementar Tabs(uint numTabs)
é a melhor?
Claro que isso depende do que "melhor" significa.
A versão do LINQ é de apenas duas linhas, o que é legal. Mas as chamadas para Repetir e Agregar desnecessariamente consomem tempo / recursos?
A
StringBuilder
versão é muito clara, mas aStringBuilder
classe é de alguma forma mais lenta?A
string
versão é básica, o que significa que é fácil de entender.Isso não importa? Eles são todos iguais?
Essas são perguntas para me ajudar a ter uma idéia melhor do 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;
}