A Forma Mais Simples de Verificar se uma Variável é Igual a um Valor de uma Lista em C#

Ao trabalhar com C#, é comum precisar verificar se uma variável corresponde a um de vários valores. A questão se torna: “qual é a forma mais sucinta de realizar isso?” Em particular, você vai querer evitar repetir a variável que está verificando várias vezes, enquanto também se afasta de implementações de sintaxe longas, como arrays ou listas, quando não é necessário.

Neste post de blog, exploraremos várias soluções para determinar se uma variável é igual a um de um conjunto de valores de maneira eficiente, usando lógica booleana.

A Abordagem Comum

Frequentemente, os desenvolvedores podem recorrer ao uso do operador lógico OU (||) para realizar uma comparação direta como esta:

int casoBase = 5;
bool resultadoTeste = casoBase == 3 || casoBase == 7 || casoBase == 12 || casoBase == 5;

Embora esta solução funcione, ela requer um código repetitivo para cada valor que você precisa verificar. Como você pode ver, se você tiver uma lista longa de valores, o código pode rapidamente se tornar complicado e suscetível a erros.

Repensando Sua Abordagem

Uma dúvida levantada foi se existe uma maneira de encapsular essa lógica de forma mais sucinta, sem usar expressões longas ou recursos do .NET 3.5. Mais notavelmente, você gostaria de evitar o uso de construções que requerem arrays. Vamos examinar uma abordagem mais compacta.

Usando Contains

Se você ainda está interessado em uma maneira mais eficiente de verificar vários valores, um dos melhores métodos é aproveitar o método Contains, embora envolva o uso de um array ou lista. Veja como você poderia escrever:

bool resultadoTeste = new int[] { 3, 7, 12, 5 }.Contains(casoBase);

Por Que Usar Contains?

Este método simplifica seu código de várias maneiras chave:

  • Legibilidade: Aumenta a clareza do código. Qualquer um que ler seu código pode instantaneamente entender o que você está tentando fazer, sem decifrar uma operação OR intrincada.
  • Flexibilidade: Você pode rapidamente modificar a lista de valores que está verificando, sem alterar a estrutura da lógica.
  • Escalabilidade: Adicione ou remova elementos em sua condição sem se preocupar com crescimento do código ou repetição.

Considerações para Usuários do .NET 2.0

Dadas as restrições do uso do framework .NET 2.0, alguns recursos disponíveis em versões posteriores não estão acessíveis. No entanto, a implementação do Contains compartilhada acima funciona bem dentro do .NET 2.0. O seguinte permanece uma solução simples e eficaz:

bool b = new int[] { 3, 7, 12, 5 }.Contains(5);

Conclusão

Determinar se uma variável é igual a qualquer valor de um conjunto pode ser elegantemente gerenciado usando o método Contains dentro de um array. Ele oferece uma solução limpa e compacta, mantendo a legibilidade do código e reduzindo o risco de erro com expressões lógicas longas. Lembre-se, à medida que você constrói cenários de lógica mais complexos em C#, aproveitar esses métodos pode apoiar um código limpo e manutenível que funciona bem mesmo em frameworks mais antigos como o .NET 2.0.

Então, da próxima vez que você precisar verificar uma variável em relação a uma lista, mantenha essas estratégias em mente para um código mais limpo!