C# | Eliminar del índice especificado de un SortedList

La clase SortedList es una colección de pares (clave, valor) que se ordenan según las claves. Se puede acceder a esos pares por clave y también por índice (indexación basada en cero). Esto viene bajo el espacio de nombres System.Collections . El método SortedList.RemoveAt(Int32) se usa para eliminar el elemento en el índice especificado de un objeto SortedList.

Propiedades:

  • Se puede acceder a un elemento SortedList por su clave o por su índice.
  • Un objeto SortedList mantiene internamente dos arrays para almacenar los elementos de la lista, es decir, una array para las claves y otra array para los valores asociados.
  • Una clave no puede ser nula, pero un valor sí puede serlo.
  • La capacidad de un objeto SortedList es la cantidad de elementos que SortedList puede contener.
  • Una SortedList no permite claves duplicadas.
  • Las operaciones en un objeto SortedList tienden a ser más lentas que las operaciones en un objeto Hashtable debido a la ordenación.
  • Se puede acceder a los elementos de esta colección mediante un índice entero. Los índices de esta colección están basados ​​en cero.

Sintaxis:

public virtual void RemoveAt (int index);

Aquí, índice es el índice de base cero del elemento que se va a eliminar.

Excepciones:

  • NotSupportedException: si el objeto SortedList es de solo lectura o SortedList tiene un tamaño fijo.
  • ArgumentOutOfRangeException: si el índice está fuera del rango de índices válidos para el objeto SortedList.

A continuación se dan algunos ejemplos para entender la implementación de una mejor manera:

Ejemplo 1:

// C# code to remove the element at
// the specified index of a SortedList
using System;
using System.Collections;
  
class GFG {
  
    // Driver code
    public static void Main()
    {
  
        // Creating an SortedList
        SortedList mySortedList = new SortedList();
  
        // Adding elements to SortedList
        mySortedList.Add("DS", "Data Structures");
        mySortedList.Add("EE", "Electrical Engineering");
        mySortedList.Add("CS", "Computer Science");
        mySortedList.Add("ME", "Mechanical Engineering");
        mySortedList.Add("CE", "Civil Engineering");
  
        // Displaying elements in SortedList
        foreach(string mykey in mySortedList.Keys)
            Console.WriteLine("Key = " + mykey);
  
        foreach(string myvalue in mySortedList.Values)
            Console.WriteLine("Key = " + myvalue);
  
        // Removing element at index 4
        Console.WriteLine("Removing element at index 4");
  
        mySortedList.RemoveAt(4);
  
        // Displaying elements in SortedList
        foreach(string mykey in mySortedList.Keys)
            Console.WriteLine("Key = " + mykey);
  
        foreach(string myvalue in mySortedList.Values)
            Console.WriteLine("Key = " + myvalue);
    }
}
Producción:

Key = CE
Key = CS
Key = DS
Key = EE
Key = ME
Key = Civil Engineering
Key = Computer Science
Key = Data Structures
Key = Electrical Engineering
Key = Mechanical Engineering
Removing element at index 4
Key = CE
Key = CS
Key = DS
Key = EE
Key = Civil Engineering
Key = Computer Science
Key = Data Structures
Key = Electrical Engineering

Ejemplo 2:

// C# code to remove the element at
// the specified index of a SortedList
using System;
using System.Collections;
  
class GFG {
  
    // Driver code
    public static void Main()
    {
  
        // Creating an SortedList
        SortedList mySortedList = new SortedList();
  
        // Adding elements to SortedList
        mySortedList.Add("DS", "Data Structures");
        mySortedList.Add("EE", "Electrical Engineering");
        mySortedList.Add("CS", "Computer Science");
        mySortedList.Add("ME", "Mechanical Engineering");
        mySortedList.Add("CE", "Civil Engineering");
  
        // Displaying elements in SortedList
        foreach(string mykey in mySortedList.Keys)
            Console.WriteLine("Key = " + mykey);
  
        foreach(string myvalue in mySortedList.Values)
            Console.WriteLine("Key = " + myvalue);
  
        // Removing element at index 8
        Console.WriteLine("Removing element at index 8");
  
        // It should raise ArgumentOutOfRangeException
        // As index is outside the range of valid
        // indexes for the SortedList object.
        mySortedList.RemoveAt(8);
  
        // Displaying elements in SortedList
        foreach(string mykey in mySortedList.Keys)
            Console.WriteLine("Key = " + mykey);
  
        foreach(string myvalue in mySortedList.Values)
            Console.WriteLine("Key = " + myvalue);
    }
}

Error:

Excepción no controlada:
System.ArgumentOutOfRangeException: el índice estaba fuera de rango. Debe ser no negativo y menor que el tamaño de la colección.
Nombre del parámetro: índice

Nota:

  • La secuencia de índice se basa en la secuencia de clasificación. Cuando se agrega un elemento, se inserta en SortedList en el orden de clasificación correcto y la indexación se ajusta en consecuencia. Cuando se elimina un elemento, la indexación también se ajusta en consecuencia. Por lo tanto, el índice de un par clave/valor específico puede cambiar a medida que se agregan o eliminan elementos del objeto SortedList.
  • Este método es una operación O(n), donde n es Count.

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 *