El método List<T>.FindLast(Predicate<T>) se utiliza para buscar un elemento que coincida con las condiciones definidas por el predicado especificado y devuelve la última aparición de ese elemento en toda la Lista<T>. Propiedades de la lista:
- Es diferente de las arrays. Una lista se puede cambiar de tamaño dinámicamente, pero las arrays no.
- La clase de lista puede aceptar nulo como un valor válido para los tipos de referencia y también permite elementos duplicados.
- Si el recuento se vuelve igual a la capacidad, la capacidad de la lista aumenta automáticamente al reasignar la array interna. Los elementos existentes se copiarán en la nueva array antes de agregar el nuevo elemento.
Sintaxis:
public T FindLast (Predicate<T> match);
Parámetro:
match: Es el delegado Predicate<T> que define las condiciones del elemento que se va a buscar.
Valor devuelto: si el elemento encontrado, este método devolverá el último elemento que coincida con las condiciones definidas por el predicado especificado; de lo contrario, devolverá el valor predeterminado para el tipo T. Excepción: este método dará ArgumentNullException si la coincidencia es nula. Los siguientes programas ilustran el uso del método List<T>.FindLast(Predicate<T>): Ejemplo 1:
CSharp
// C# Program to get the last occurrence // of the element that match the specified // conditions defined by the predicate using System; using System.Collections; using System.Collections.Generic; class Geeks { // function which checks whether an // element is even or not. Or you can // say it is the specified condition private static bool isEven(int i) { return ((i % 2) == 0); } // Main Method public static void Main(String[] args) { // Creating an List<T> of Integers List<int> firstlist = new List<int>(); // Adding elements to List firstlist.Add(4); firstlist.Add(2); firstlist.Add(7); firstlist.Add(2); firstlist.Add(6); firstlist.Add(4); firstlist.Add(3); Console.WriteLine("Elements Present in List:\n"); int p = 0; // Displaying the elements of List foreach(int k in firstlist) { Console.Write("At Position {0}: ", p); Console.WriteLine(k); p++; } Console.WriteLine(" "); // Will give the last occurrence of the // element of firstlist that match the // conditions defined by predicate Console.Write("Index of Last element that fulfill the conditions: "); Console.WriteLine(firstlist.LastIndexOf(firstlist.FindLast(isEven))); Console.Write("Element is: "); Console.Write((firstlist.FindLast(isEven))); } }
Elements Present in List: At Position 0: 4 At Position 1: 2 At Position 2: 7 At Position 3: 2 At Position 4: 6 At Position 5: 4 At Position 6: 3 Index of Last element that fulfill the conditions: 5 Element is: 4
Ejemplo 2:
CSharp
// C# Program to get the last occurrence // of the element that match the specified // conditions defined by the predicate using System; using System.Collections; using System.Collections.Generic; class Geeks { // function which checks whether an // element is even or not. Or you can // say it is the specified condition private static bool isEven(int i) { return ((i % 2) == 0); } // Main Method public static void Main(String[] args) { // Creating an List<T> of Integers List<int> firstlist = new List<int>(); // Adding elements to List firstlist.Add(17); firstlist.Add(19); firstlist.Add(21); firstlist.Add(9); firstlist.Add(75); firstlist.Add(19); firstlist.Add(73); Console.WriteLine("Elements Present in List:\n"); int p = 0; // Displaying the elements of List foreach(int k in firstlist) { Console.Write("At Position {0}: ", p); Console.WriteLine(k); p++; } Console.WriteLine(" "); // it will return index -1 as no element // found in the list which specified // the conditions and so element value // will be 0 as the list contains Integers Console.Write("Index of Last element that fulfill the conditions: "); Console.WriteLine(firstlist.LastIndexOf(firstlist.FindLast(isEven))); Console.Write("Element is: "); Console.Write((firstlist.FindLast(isEven))); } }
Elements Present in List: At Position 0: 17 At Position 1: 19 At Position 2: 21 At Position 3: 9 At Position 4: 75 At Position 5: 19 At Position 6: 73 Index of Last element that fulfill the conditions: -1 Element is: 0
Complejidad de tiempo: O(n) para el método FindLast
Espacio auxiliar: O(n) donde n es el tamaño de la lista
Referencia:
Publicación traducida automáticamente
Artículo escrito por Kirti_Mangal y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA