C# | Cómo verificar si una Lista contiene los elementos que coinciden con las condiciones especificadas

El método List<T>.Exists(Predicate<T>) se usa para verificar si List<T> contiene 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 bool Exists (Predicate<T> match);

Parámetro:

match: Es el delegado Predicate<T> que define las condiciones de los elementos a buscar.

Valor devuelto: este método devuelve True si List<T> contiene uno o más elementos que coinciden con las condiciones definidas por el predicado especificado; de lo contrario, devuelve False . Excepción: este método dará ArgumentNullException si la coincidencia es nula. Los siguientes programas ilustran el método List<T>.Exists(Predicate<T>): Ejemplo 1: 

CSharp

// C# Program to check whether a List contains
// the elements 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
        for (int i = 1; i <= 10; i++) {
            firstlist.Add(i);
        }
 
        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: ");
 
        // Check the elements of firstlist that
        // match the conditions defined by predicate
        Console.WriteLine(firstlist.Exists(isEven));
    }
}

Producción:

Elements Present in List:

1
2
3
4
5
6
7
8
9
10
 
Result: True

Ejemplo 2: 

CSharp

// C# Program to check whether a List contains
// the elements 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(5);
        firstlist.Add(7);
        firstlist.Add(9);
        firstlist.Add(11);
        firstlist.Add(3);
        firstlist.Add(17);
        firstlist.Add(19);
 
        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: ");
 
        // Check the elements of firstlist that
        // match the conditions defined by predicate
        Console.WriteLine(firstlist.Exists(isEven));
    }
}

Producción:

Elements Present in List:

5
7
9
11
3
17
19
 
Result: False

Complejidad de tiempo: O(n) para el método Existe

Complejidad del espacio: 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

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *