Solucionado (ver solução)
Solucionado
(ver solução)
1
resposta

[Sugestão] IgnoreCase no Método Equals

Não sei se será abordado mais a frente, mas o método Equals() tem um parâmetro que recebe um enum StringComparison.OrdinalIgnoreCase no qual é mais performático do que alterar toda a cadeia de caracteres para maiúsculo para que possa fazer o comparativo, então a alteração ficaria assim:

Antes:

var artista =  dal.RecuperarPor(a => a.Nome.ToUpper().Equals(nome.ToUpper()));

Depois:

var artista =  dal.RecuperarPor(a => a.Nome.Equals(nome, StringComparison.OrdinalIgnoreCase));

Fonte:

Benchmark**Artigo: ** Postagem original da imagem: https://www.linkedin.com/posts/davidcallan_dotnet-csharp-activity-7091658793565966336-Ybfd/

**Documentação: ** Boas práticas para comparação de Strings no .Net: https://learn.microsoft.com/en-us/dotnet/standard/base-types/best-practices-strings

1 resposta
solução!

Olá Lucas! Como vai?

Sua sugestão é realmente muito válida e traz melhorias significativas para a comparação de strings na aplicação. Utilizar o StringComparison.OrdinalIgnoreCase no método Equals() é uma prática recomendada por vários motivos, como você mencionou: precisão na comparação de strings que podem ter problemas com caracteres específicos em diferentes culturas (como o problema do 'i' maiúsculo e minúsculo em turco), melhor legibilidade do código e, claro, desempenho.

O benchmark que você compartilhou ilustra claramente que o uso de Equals com StringComparison.OrdinalIgnoreCase é mais performático do que converter as strings para maiúsculas ou minúsculas antes de compará-las. Isso é especialmente importante em aplicações de alta desempenho ou que realizam inúmeras comparações de strings.

Agradeço por compartilhar essa dica com a comunidade do curso. É sempre ótimo ver estudantes contribuindo para a melhoria contínua do aprendizado coletivo. Espero que sua sugestão seja incorporada nas próximas atualizações do curso para que todos possam se beneficiar dessa prática.

Boa sorte nos estudos!

Quer mergulhar em tecnologia e aprendizagem?

Receba a newsletter que o nosso CEO escreve pessoalmente, com insights do mercado de trabalho, ciência e desenvolvimento de software