Bienvenidos sean a este post, hoy veremos un metodo para los objetos List.
Este metodo nos permite saber si buscar un valor en la lista y nos devolvera la primer coincidencia, veamos su sintaxis:
lista.Find(predicado);
El metodo se aplica directamente a la lista, el predicado es el encargado de verificar si se encuentra o no, este puede ser una funcion o un operador lambda, el valor que nos devolvera sera la primera coincidencia, vamos a analizarlo mediante un ejemplo y para ello crearemos un nuevo archivo con el nombre de encontrar.cs y le agregaremos el siguiente codigo:
encontrar.cs
using System;
using System.Collections.Generic;
public class Program
{
static int Main()
{
List<string> nombres = new List<string>(5);
nombres.Add("enzo");
nombres.Add("martin");
nombres.Add("ariel");
nombres.Add("marta");
nombres.Add("javier");
Console.WriteLine("Primer coincidencia: {0}",
nombres.Find(verificar));
return 0;
}
static bool verificar(string dato)
{
return dato.StartsWith("m");
}
}
Antes de hablar del codigo en el Main veamos como es la funcion que usaremos con el metodo, en este caso devolvera un valor de tipo booleano, recibira un dato que nos lo proveera el metodo Find y a ese dato le aplicaremos el metodo StatrsWith, el cual devolvera True si se existe alguna coincidencia con lo informado de lo contrario devolvera un False, pasemos a ver al Main, en esta funcion lo primero que haremos sera definir una lista llamada nombres con cinco valores, luego mostraremos el resultado de aplicar el metodo a la lista, observen que solo llamamos al metodo verificar, el envio de la informacion sera realizado automaticamente por el metodo Find, y este solo nos mostrara la primera coincidencia con el valor True, con todo comentado veamos como es su salida:
C:\Users\tinchicus>encontrar.exe
Primer coincidencia: martin
C:\Users\tinchicus>
Observen que de las dos posibles coincidencias nos devolvio efectivamente la primera, tomemos el codigo anterior y vamos a modificarlo para trabajar con el operador lambda:
using System;
using System.Collections.Generic;
public class Program
{
static int Main()
{
List<string> nombres = new List<string>(5);
nombres.Add("enzo");
nombres.Add("martin");
nombres.Add("ariel");
nombres.Add("marta");
nombres.Add("javier");
Console.WriteLine("Primer coincidencia: {0}",
nombres.Find(c=>c.StartsWith("m")));
return 0;
}
}
El codigo es el mismo y tiene la misma conducta pero tendra dos diferencias principales, la primera sera la desaparicion de la funcion y la segunda sera el cambio del llamado por un operador lambda donde asignaremos el valor a una variable y en ella le aplicaremos el metodo que usabamos en la funcion anterior, si bien es mas simple tambien es mas limitado con respecto a la funcion pero eso queda a criterio de cada uno y necesidad del momento, si lo compilan y ejecutan obtendran la misma salida que antes.
En resumen, hoy hemos visto Find, que es, para que sirve, como se utiliza, un ejemplo practico para verlo como trabaja tanto con una funcion como con un operador lambda, 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.


Donación
Es para mantenimento del sitio, gracias!
$1.50
