Hacer un IN en C#

08/02/2007 - 08:47 por Pelusa | Informe spam
Hola a tod@s,

¿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();
}
 

Leer las respuestas

#1 Roberto M. Oliva
08/02/2007 - 12:03 | Informe spam
Hola, si son enteros, es mas bien sencillo asi:

int[] i = {1, 3, 5, 7};
if (new ArrayList(i).Contains(3))
{
MessageBox.Show(("Encontrado"));
}

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:

int val = 3;
if(Array.Find(i, delegate(int p)
{
return p == val;
}) == val)
{
MessageBox.Show("Encontrado");
}

Pero lo bueno es que lo puedes implementar en una sola linea y seguro
que te vale para cualquier tipo de objeto.

Un saludo

Roberto M. Oliva

On 8 feb, 11:31, "Paco Ferre" wrote:
On 8 feb, 08:47, Pelusa wrote:



> Hola a ,

> ¿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();

> }- Ocultar texto de la cita -

> - Mostrar texto de la cita -

A ver si esto sirve, no lo he probado.

int[] lista = new int[] {1, 3, 5, 7, 8, 15}

foreach(int i in lista)
{

}

Preguntas similares