Anuncios

Bienvenidos sean a este post, hoy veremos un metodo para los objetos List.

Anuncios

Este metodo nos permite determinar si el valor existe o no en la lista, veamos su sintaxis:

lista.Exists(predicado)
Anuncios

El metodo se aplica a la lista y el predicado puede ser una funcion o un operador lambda, tal como vimos con el metodo ConvertAll en este post, en cualquier caso este metodo nos devolvera un valor booleano en caso de existir sera True de lo contrario sera False, vamos a intentar ver los dos casos para ello crearemos un archivo con el nombre de existe.cs y le agregaremos el siguiente codigo:

existe.cs

using System;
using System.Collections.Generic;

public class Program
{
	static int Main()
	{
		List<string> nombres = new List<string>(4);
		nombres.Add("tinchicus");
		nombres.Add("enzo");
		nombres.Add("ariel");
		nombres.Add("javier");

		chequeo(nombres, "martin");
		chequeo(nombres, "enzo");

		return 0;
	}

	static void chequeo(List<string> lista, string nombre)
	{
		bool res=lista.Exists(c=>c.Equals(nombre));
		if (res)
		{
			Console.WriteLine("{0} existe en la lista", nombre);
		} else {
			Console.WriteLine("{0} no existe en la lista", nombre);
		}	
	}
}
Anuncios
Anuncios

En este caso vamos a analizar primero la funcion llamado chequeo, este recibira dos argumentos, una sera el objeto de tipo List que analizaremos y el otro dato sera el nombre a buscar, lo primero que haremos sera definir una variable de tipo bool donde almacenaremos el valor resultante de usar el metodo pero en el predicado pasaremos un operador lambda donde usaremos el metodo Equals y como dato le pasaremos el nombre a buscar, despues tenemos un condicional donde si el valor devuelto es verdadero mostraremos un mensaje indicando que ese nombre existe, de lo contrario diremos que no existe, pasemos al Main y ahi definiremos una lista con una serie de nombres para despues llamar a la funcion anterior para verificar si existen esos dos nombres, pasemos a ver como es su salida:

C:\Users\tinchicus>existe.exe
martin no existe en la lista
enzo existe en la lista

C:\Users\tinchicus>
Anuncios

El metodo funciono correctamente con el operador lambda pero como podemos hacer lo mismo con la funcion, bueno para eso la complicaremos un poco mas, para ello modificaremos el codigo anterior de la siguiente manera:

using System;
using System.Collections.Generic;

public class Program
{
	static string nombre = "";
	static int Main()
	{
		List<string> nombres = new List<string>(4);
		nombres.Add("tinchicus");
		nombres.Add("enzo");
		nombres.Add("ariel");
		nombres.Add("javier");

		chequeo(nombres, "javier");
		chequeo(nombres, "marta");

		return 0;
	}

	static void chequeo(List<string> lista, string n)
	{
		nombre = n;
		bool res=lista.Exists(verificar);
		if (res)
		{
			Console.WriteLine("{0} existe en la lista", nombre);
		} else {
			Console.WriteLine("{0} no existe en la lista", nombre);
		}	
	}

	static bool verificar(string dato)
	{
		return dato.Equals(nombre);	
	}
}
Anuncios

Tecnicamente es un codigo parecido al anterior pero mas complicado, primero agregaremos una variable de tipo string llamada nombre, en este caso en blanco, y la hacemos static para que sea accesible para todos, despues modificamos esta linea:

bool res=lista.Exists(c=>c.Equals(nombre));
Anuncios

Por esta otra:

bool res=lista.Exists(verificar);
Anuncios

A su vez el nombre que pasamos como argumento en la funcion chequeo lo asignamos a la nueva variable, de la linea anterior tenemos una funcion llamada verificar, esta nueva funcion recibira el dato de cada elemento de la lista y el tipo que devuelve es de tipo booleano y es el resultado de llamar a Equals con el valor de nombre, despues el resto es igual al codigo anterior, salvo que cambiamos los nombres, veamos como es la nueva salida:

C:\Users\tinchicus>existe.exe
javier existe en la lista
marta no existe en la lista

C:\Users\tinchicus>
Anuncios

En resumen, hoy hemos visto Exists, que es, para que sirve, como se utiliza, las dos formas de poder utilizarlo, con una funcion o un operador lambda, y los ejemplos para verlos en accion, espero les haya sido de utilidad sigueme en tumblr, Twitter o Facebook para recibir una notificacion cada vez que subo un nuevo post en este blog, nos vemos en el proximo post.

Anuncios
pp258

Donación

Es para mantenimento del sitio, gracias!

$1.50

Anuncio publicitario