C# | Cómo agregar pares clave/valor en 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.Add(Object, Object) se usa para agregar un elemento con la clave y el valor especificados a un objeto SortedList.

Propiedades de SortedList:

  • Internamente, el objeto de SortedList mantiene las dos arrays. La primera array se usa para almacenar los elementos de la lista, es decir, las claves, y la segunda se usa para almacenar los valores asociados.
  • Una clave no puede ser nula, pero el valor puede serlo.
  • Como SortedList usó la clasificación, lo que lo hace más lento en comparación con Hashtable.
  • La capacidad de una SortedList se puede aumentar dinámicamente mediante la reasignación.
  • Las claves en SortedList no se pueden duplicar, pero los valores sí.
  • SortedList se puede ordenar de acuerdo con las claves usando IComparer (ya sea en orden ascendente o descendente).

Sintaxis:

public virtual void Add (object key, object value);

Parámetros:

clave: Es la clave del elemento que se va a añadir.

valor: Es el valor del elemento que se va a sumar. El valor puede ser nulo.

Excepciones:

  • ArgumentNullException: si la clave es nula.
  • ArgumentException: si el elemento con la clave especificada ya existe en el objeto SortedList o SortedList está configurado para usar la interfaz IComparable y la clave no implementa la interfaz IComparable.
  • NotSupportedException: si SortedList es de solo lectura o tiene un tamaño fijo.
  • OutOfMemoryException: si no hay suficiente memoria disponible en el sistema para agregar los pares a SortedList.
  • InvalidOperationException: si el comparador arroja una excepción.

Los siguientes programas ilustran el uso del método discutido anteriormente:

Ejemplo 1:

// C# program to illustrate how to add key/value
// pair in SortedList
using System;
using System.Collections;
  
class Geeks {
  
    // Main Method
    public static void Main(String[] args)
    {
  
        // Creating a sorted list of key/value pairs
        SortedList fslist = new SortedList();
  
        // Adding pairs to fslist
        fslist.Add("Maths    ", 98);
        fslist.Add("English  ", 99);
        fslist.Add("Physics  ", 97);
        fslist.Add("Chemistry", 96);
        fslist.Add("CSE      ", 100);
  
        // Displays the marks in different
        // subjects sorted according to keys
        // i.e subjects
        // Here Count property is used to count
        // the total number of pairs in SortedList
        for (int i = 0; i < fslist.Count; i++) {
            Console.WriteLine("{0}:\t{1}", fslist.GetKey(i),
                                      fslist.GetByIndex(i));
        }
    }
}

Producción:

Chemistry:    96
CSE      :    100
English  :    99
Maths    :    98
Physics  :    97

Ejemplo 2:

// C# program to illustrate how to add
// key/value pair in SortedList
using System;
using System.Collections;
  
class Geeks {
  
    // Main Method
    public static void Main(String[] args)
    {
  
        // Creating a sorted list of key/value pairs
        SortedList fslist = new SortedList();
  
        // Adding pairs to fslist
        fslist.Add("Maths    ", 98);
        fslist.Add("English  ", 99);
        fslist.Add("Physics  ", 97);
        fslist.Add("Chemistry", 96);
  
        // this will give error as we are
        // adding duplicate key i.e Chemistry
        fslist.Add("Chemistry", 100);
    }
}

Error:

Excepción no controlada:
System.ArgumentException: el elemento ya se ha agregado. Clave en el diccionario: ‘Química’ Clave agregada: ‘Química’
en System.Collections.SortedList.Add (System.Object key, System.Object value) en :0
en Geeks.Main (System.String[] args) en: 0

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 *