C# | Eliminar elementos de un SortedSet que coincida con el predicado

La clase SortedSet representa la colección de objetos ordenados. Esta clase viene bajo el espacio de nombres System.Collections.Generic . El método SortedSet<T>.RemoveWhere(Predicate<T>) se usa para quitar todos los elementos que coinciden con las condiciones definidas por el predicado especificado de un SortedSet<T>.

Propiedades:

  • En C#, la clase SortedSet se puede usar para almacenar, eliminar o ver elementos.
  • Mantiene el orden ascendente y no almacena elementos duplicados.
  • Se sugiere usar la clase SortedSet si tiene que almacenar elementos únicos y mantener un orden ascendente.

Sintaxis:

public int RemoveWhere (Predicate<T> match);

Valor devuelto: este método devuelve la cantidad de elementos que se eliminaron de la colección SortedSet<T>.

Excepción: este método dará ArgumentNullException si la coincidencia es nula.

Nota: Llamar a este método es una operación O(n), donde n es Count , es decir, el número de elementos que están contenidos en SortedSet.

A continuación se muestran los ejemplos para ilustrar el método SortedSet<T>.Removewhere(Predicate<T>)

Ejemplo 1:

// C# code to remove elements from a SortedSet
// that match the predicate
using System;
using System.Collections.Generic;
  
class GFG {
  
    // Driver code
    public static void Main()
    {
  
        // Creating a SortedSet of integers
        SortedSet<int> mySet = new SortedSet<int>();
  
        // Inserting elements into SortedSet
        for (int i = 0; i < 10; i++) {
            mySet.Add(i);
        }
  
        Console.WriteLine("The elements in SortedSet are : ");
  
        // Displaying the elements in SortedSet
        foreach(int i in mySet)
        {
            Console.WriteLine(i);
        }
  
        // Displaying the number of elements in SortedSet
        Console.WriteLine("Number of elements are : " + mySet.Count);
  
        // Remove elements from a SortedSet
        // with conditions defined by the predicate
        mySet.RemoveWhere(isEven);
  
        Console.WriteLine("The elements in SortedSet are : ");
  
        // Displaying the elements in SortedSet
        foreach(int i in mySet)
        {
            Console.WriteLine(i);
        }
  
        // Displaying the number of elements in SortedSet
        Console.WriteLine("Number of elements are : " + mySet.Count);
    }
  
    // Helper function which tells
    // whether an element is even or not
    private static bool isEven(int i)
    {
        return ((i % 2) == 0);
    }
}
Producción:

The elements in SortedSet are : 
0
1
2
3
4
5
6
7
8
9
Number of elements are : 10
The elements in SortedSet are : 
1
3
5
7
9
Number of elements are : 5

Ejemplo 2:

// C# code to remove elements from a
// SortedSet that match the predicate
using System;
using System.Collections.Generic;
  
class GFG {
  
    // Driver code
    public static void Main()
    {
  
        // Creating a SortedSet of integers
        SortedSet<int> mySet = new SortedSet<int>();
  
        // Inserting elements into SortedSet
        for (int i = 0; i < 20; i++) {
            mySet.Add(i);
        }
  
        // Displaying the number of elements in SortedSet
        Console.WriteLine("Number of elements are : " + mySet.Count);
  
        // Remove elements from a SortedSet
        // with conditions defined by the predicate
        mySet.RemoveWhere(myFunc);
  
        // Displaying the number of elements in SortedSet
        Console.WriteLine("Number of elements are : " + mySet.Count);
    }
  
    // Helper function which tells
    // whether an element is divisible
    // by both 2 and 3
    private static bool myFunc(int i)
    {
        return ((i % 2) == 0 && (i % 3 == 0));
    }
}
Producción:

Number of elements are : 20
Number of elements are : 16

Referencia:

Publicación traducida automáticamente

Artículo escrito por Sahil_Bansall 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 *