2
respostas

Sobre Dicionarios..

Como posso transformar todos os itens contidos no dicionario para os mesmos ficarem com letra minuscula? eu preciso fazer uma Request no servidor passando /Livros/ParaLer , no entanto o usuario pode digitar: /LIVROS/PARALER /LIvros/paralEr e por ai vai... Quero saber como transformo estes elementos para posteriormente realizar o mesmo processo no momento de fazer a Response.

var caminhosAtendidos = new Dictionary<string, string>
            {
                { "/Livros/ParaLer",_repo.ParaLer.ToString() },
                { "/Livros/Lendo", _repo.Lendo.ToString() },
                { "/Livros/Lidos,", _repo.Lidos.ToString() }
            };
2 respostas

Chrystian,

Desculpe a pressa e se eu estiver falando besteira, mas você tentou colocar o método ".ToLower"?

==========================================================

String.ToLower Method / String.ToLower Método

Reference / Referência

https://docs.microsoft.com/en-us/dotnet/api/system.string.tolower?view=net-6.0

https://docs.microsoft.com/pt-br/dotnet/api/system.string.tolower?view=net-6.0

==========================================================

C# | ToLower() Method

Last Updated : 31 Jan, 2019

https://www.geeksforgeeks.org/c-sharp-tolower-method/

==========================================================

C# ToLower() Method

O método "ToLower()" em C# é usado para retornar uma cópia desta string convertida em minúsculas.

https://www.tutorialspoint.com/chash-tolower-method

==========================================================

[]'s,

Fabio I.

Olá Chrystian!

"eu preciso fazer uma Request no servidor passando /Livros/ParaLer , no entanto o usuario pode digitar: /LIVROS/PARALER /LIvros/paralEr e por ai vai..."

Nesse caso em específico você precisará alterar a Chave no dicionário deixando as letras minúsculas e colocar todas as letras do caminho no Request em minúsculas para fazer a comparação, ficando assim:

var caminhosAtendidos = new Dictionary<string, RequestDelegate>
            {
                { "/livros/paraler", LivrosParaLer },
                { "/livros/lendo", LivrosLendo },
                { "/livros/lidos", LivrosLidos }
            };

            var caminho = context.Request.Path.Value.ToLower();

            if (caminhosAtendidos.ContainsKey(caminho))
            {
                var metodo = caminhosAtendidos[context.Request.Path];
                return metodo.Invoke(context);
            }

Mas existe uma forma melhor de fazer o roteamento que será apresentada nesse curso de API que você está fazendo. E com essa forma o .NET vai conseguir entender e encontrar a rota, independente se as letras estão maiúsculas ou minúsculas e fazer o direcionamento correto.

Abraço!