Esto viene de una de las preguntas de un Newsgroup, que me ha resultado curiosa y lo pongo aqui:
Pelusa pregunto lo siguiente:
alguien sabe si en C# se puede hacer algo parecido a un IN?
es decir, algo semejante a esto:
int i = 3;
if (i IN (1,3,5,7))
{
hacer_algo();
Mi respuesta es la siguiente:
Hola, si son enteros, es mas bien sencillo asi:
.cf { font-family: Courier New; font-size: 8pt; color: black; background: white; }.cl { margin: 0px; }.cln { color: #2b91af; }.cb1 { color: blue; }.cb2 { color: teal; }.cb3 { color: maroon; }1 int[] i = { 1, 3, 5, 7 };
2 if (new ArrayList(i).Contains(8))
3 {
4 MessageBox.Show((“Encontrado”));
5 }
Contains compara instancias de objetos, si creas dos objetos cuyo
estado es identico, pero son instancias diferentes, Contains va a
fallar, a no ser que sobrecarges la funcion Object.Equals.
Tambien lo puedes hacer asi:
1 int[] i = { 1, 3, 5, 7 };
2 int val = 3;
3 if (Array.Find(i, delegate(int p)
4 {
5 return p == val;
6 }) == val)
7 {
8 MessageBox.Show(“Encontrado”);
9 }
Pero lo bueno es que lo puedes implementar en una sola linea y seguro
que te vale para cualquier tipo de objeto.
Enviar un comentario nuevo