El método List<T>.FindAll(Predicate<T>) se usa para obtener todos los elementos que coinciden con las condiciones definidas por el predicado especificado.
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 System.Collections.Generic.List<T> FindAll (Predicate<T> match);
Parámetro:
match: Es el delegado de Predicate<T> que define las condiciones de los elementos que se van a buscar.
Valor devuelto: este método devuelve una List<T> que contiene todos los elementos que coinciden con las condiciones definidas por el predicado especificado; de lo contrario, devuelve una List<T> vacía.
Excepción: este método dará ArgumentNullException si la coincidencia es nula.
Los siguientes programas ilustran el uso del método List<T>.FindAll(Predicate<T>):
Ejemplo 1:
// C# Program to get all 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(2); firstlist.Add(4); firstlist.Add(7); firstlist.Add(2); firstlist.Add(3); firstlist.Add(2); firstlist.Add(4); Console.WriteLine("Elements Present in List:\n"); // Displaying the elements of List foreach(int k in firstlist) { Console.WriteLine(k); } Console.WriteLine(" "); Console.Write("Elements that Match: \n"); // Will give the List of Elements that // match the conditions defined by predicate List<int> Result = new List<int>(firstlist.FindAll(isEven)); foreach(int i in Result) { Console.WriteLine(i); } } }
Producción:
Elements Present in List: 2 4 7 2 3 2 4 Elements that Match: 2 4 2 2 4
Ejemplo 2:
// C# Program to get all 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(77); firstlist.Add(15); firstlist.Add(9); firstlist.Add(3); firstlist.Add(7); firstlist.Add(57); Console.WriteLine("Elements Present in List:\n"); // Displaying the elements of List foreach(int k in firstlist) { Console.WriteLine(k); } Console.WriteLine(" "); Console.Write("Result is: "); // Will give the List of Elements that // match the conditions defined by predicate // Here no even number found in the list // so it wil return an empty list List<int> Result = new List<int>(firstlist.FindAll(isEven)); // checking for the resultant // Elements in the List if ((Result.Count) == 0) { Console.WriteLine("No Match Found"); } } }
Producción:
Elements Present in List: 17 77 15 9 3 7 57 Result is: No Match Found
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