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!