Bienvenidos sean a este post, hoy veremos un metodo para los arrays.
Este metodo nos sirve para encontrar un elemento dentro de un array y nos devolvera la ultima coincidencia, veamos como es su sintaxis:
Array.FindLast(array, busqueda);
El metodo se llama a traves de la clase y como argumentos debemos pasar el array en cuestion y luego el patron de busqueda que al igual que ConvertAll debemos utilizar un programa o un operador Lambda, para entenderlo mejor vamos a realizar un ejemplo y para ello crearemos un archivo con el nombre buscar.cs y le agregaremos el siguiente codigo:
buscar.cs
using System;
public class Program
{
static int Main()
{
string[] nombres = {"enzo","marta","javier","martin","raul"};
for(int i=0; i < nombres.Length; i++)
Console.WriteLine("pos #{0}: {1}", i, nombres[i]);
string nombre = Array.FindLast(nombres, buscar_nombre);
Console.WriteLine("Nombre : {0}", nombre);
return 0;
}
static bool buscar_nombre(string e)
{
return e.StartsWith("m", StringComparison.Ordinal);
}
}
En este codigo primero definiremos una variable con una serie de nombres, nuestro siguiene paso sera mostrarlos en pantalla, lo siguiente es la definicion de una variable donde almacenaremos el resultado de aplicar al metodo FindLast, observen que pasamos el array y despues la funcion que usaremos para buscar el nombre, no es tan asi pero ya veremos porque, despues mostraremos el resultado almacenado en nombre, para ir finalizando hablemos sobre la funcion, en este caso sera de tipo bool, como argumento recibira al array, recuerden que esto es automatico porque se encarga el metodo de pasarlo, dentro de esta funcion devolveremos el resultado de aplicar el StartsWith al array, en este caso le pedimos que busque una palabra que comience con la letra t y le decimos que utilice la comparacion ordinal, al ser un valor de tipo booleano a diferencia de Find se detendra cuando encuentre el ultimo true y con eso sabremos que se cumplio la busqueda, recuerden que nos devuelve la ultima coincidencia, con esto comentado pasemos a ver como es su salida:
C:\Users\tinchicus>buscar.exe
pos #0: enzo
pos #1: marta
pos #2: javier
pos #3: martin
pos #4: raul
Nombre : martin
C:\Users\tinchicus>
Observen como nos devolvio el ultimo nombre que comienza con la letra que le indicamos, pero como dijimos este metodo tambien soporta el operador Lambda, para ello modifiquemos el codigo anterior de la siguiente manera:
using System;
public class Program
{
static int Main()
{
string[] nombres = {"enzo","marta","javier","martin","raul"};
for(int i=0; i < nombres.Length; i++)
Console.WriteLine("pos #{0}: {1}", i, nombres[i]);
string nombre = Array.FindLast(nombres, e => e.StartsWith("m",
StringComparison.Ordinal));
Console.WriteLine("Nombre : {0}", nombre);
return 0;
}
}
Este codigo es muy similar al anterior pero con dos salvedades, ya no tenemos la funcion adicional y en lugar del llamado a esta usamos el operador lambda (=>), este pasara al array en e y despues lo usaremos con StartsWith tal como en el caso anterior y cuando coincida con el ultimo true se detendra tal como vimos en el codigo anterior, despues el resto hace exactamente lo mismo que describimos aneriormente e inclusive obtendremos el mismo resultado aunque en comparacion con el codigo anterior denotaremos cierta facilidad, pero tengan en cuenta que este es mas limitado que la funcion, asi que deberan ajustarse a las necesidades de donde lo esten utilizando.
En resumen, hoy hemos visto FindLast, que es, para que sirve, como se utiliza, vimos un ejemplo con las dos formas que se pueden usar para aplicar correctamente el metodo, espero les haya sido util 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
