PRIMEIRA LETRA MAIUSCULA EXCETO PREPOSIÇÕES

 Tópico anterior Próximo tópico Novo tópico

PRIMEIRA LETRA MAIUSCULA EXCETO PREPOSIÇÕES

C#

 Compartilhe  Compartilhe  Compartilhe
#496579 - 27/03/2021 18:24:10

ATSILVA
SAO PAULO
Cadast. em:Março/2014


Última edição em 27/03/2021 18:31:24 por ATSILVA

Na função abaixo de conversão da primeira letra em maiúscula, quando a frase possui de, de, das... esta convertendo a primeira para maiúscula sendo que as preposições teriam que permanecer minúscula.

O problema esta na linha if (!excecoes.Contains(emMinusculo)) letras[0] = char.ToUpper(letras[0]);
Mesmo com o operador de negação (!), ele não esta reconhecendo as exceções.
Alguém sabe o que pode ser?

static string CapitalizarNome(string nome)
{
    string[] excecoes = new string[] { 'e', 'de', 'da', 'das', 'do', 'dos' };
    var palavras = new Queue<string>();
    foreach (var palavra in nome.Split(' '))
    {
        if (!string.IsNullOrEmpty(palavra))
        {
            var emMinusculo = palavra.ToLower();
            var letras = emMinusculo.ToCharArray();
            if (!excecoes.Contains(emMinusculo)) letras[0] = char.ToUpper(letras[0]);
            palavras.Enqueue(new string(letras));
        }
    }
    return string.Join(' ', palavras);
}

Fonte: https://pt.stackoverflow.com/questions/247/capitalizando-nomes-em-c




Resposta escolhida #496580 - 27/03/2021 20:28:05

KERPLUNK
RIO GRANDE DO SUL
Cadast. em:Junho/2009


Membro da equipe
Cara, testei isso e funcionou certinho. Olha o Fiddler

_______________________________________________________________________
Virei Orculo!
The end is nigh, be ready for the nukes!


#496581 - 27/03/2021 22:10:00

ATSILVA
SAO PAULO
Cadast. em:Março/2014


KERPLUNK, funcionando corretamente.
Estava faltando a referencia using System.Linq; no meu projeto.
Obrigado.



 Tópico anterior Próximo tópico Novo tópico


Tópico encerrado, respostas não sao permitidas
Encerrado por ATSILVA em 27/03/2021 22:10:21