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?