Bom, hoje tive uma curiosidade e pesquisei sobre métodos de tornar a primeira letra de cada palavra maiúscula.
Ví soluções diferentes, e a que mais tem um usando cadeia caracteres. Vejam:
private string Maiuscula(string value)
{
char[] resultado = value.ToCharArray();
// Torna o primeiro caracter maiúsculo
resultado[0] = char.ToUpper(resultado[0]);
for (int i = 1; i < resultado.Length; ++i)
{
if (char.IsWhiteSpace(resultado[i - 1]))
// Torna o caracter maiúsculo se precedido de espaço
resultado[i] = char.ToUpper(resultado[i]);
else
// Torna todos os outros caracteres minúsculos
resultado[i] = char.ToLower(resultado[i]);
}
return new string(resultado);
}
Interessante, não? Também pode-se utilizar no .NET uma classe chamada StringBuilder, que é muito boa para formar strings de outras strings. Vejam:
public static string Maiuscula(string value)
{
StringBuilder result = new StringBuilder(value);
// Torna o primeiro caracter maiúsculo
resultado[0] = char.ToUpper(resultado[0]);
for (int i = 1; i < result.Length; ++i)
{
if (char.IsWhiteSpace(resultado[i - 1]))
// Torna o caracter maiúsculo se precedido de espaço
resultado[i] = char.ToUpper(resultado[i]);
else
// Torna todos os outros caracteres minúsculos
resultado[i] = char.ToLower(resultado[i]);
}
return resultado.ToString();
}
E aí, qual acham que é mais eficiente e tem melhor performance?