Problema: Prueba si x ∉ {2, 3, 61, 71}C#: ¿La manera más elegante de probar si int x es un elemento de un conjunto dado?
I se preguntaba a menudo si no hay una manera mejor que:
if (x != 2 && x != 3 && x != 61 && x != 71)
{
// do things
}
y
if (!new List<int>{ 2, 3, 61, 71 }.Contains(x))
{
// do things
}
Este último uno parece bastante elegante, pero en realidad es algo irritante si lo lees, especialmente debido a la inversión. Es algo feo porque en inglés decimos "x no es elemento de ...", que es difícil de expresar en C# sin irritar la sobrecarga. Tal vez uno podría decir if (Object(x).IsElementOf(new[] { ... }))
o menos?
Hmm .. alguna sugerencia? ¿Hay algún método estándar .Net para probar cosas como esa?
Este es un duplicado pero estoy teniendo un poco de problemas para encontrar la otra pregunta a mí mismo ... – BoltClock
no puedo votar a cerrar, se acabó, pero http://stackoverflow.com/questions/163732/recommended-net-class-for-a-collection-of-unique-integers – user7116
@Efrain, ¿quiso decir '&&' en lugar de '|| ¿? Los dos fragmentos de código no hacen lo mismo ... –