C# | Obtener el índice de la clave especificada en un objeto SortedList – Part 1

El método SortedList.IndexOfKey(Object) se usa para obtener el índice basado en cero de la clave especificada en un objeto SortedList.

Sintaxis:

public virtual int IndexOfKey (object key);

Aquí, key es la clave que se ubicará en el objeto SortedList.

Valor devuelto: este método devuelve el índice basado en cero del tipo System.Int32del parámetro clave si la clave se encuentra en el objeto SortedList; de lo contrario, devuelve -1.

Excepciones:

  • ArgumentNullException : si la clave es nula.
  • InvalidOperationException : si el comparador arroja una excepción.

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

Ejemplo 1:

// C# code to get the zero-based index
// of the specified key in a SortedList
// object
using System;
using System.Collections;
  
class Geeks {
  
    // Main Method
    public static void Main(String[] args)
    {
  
        // Creating a SortedList of integers
        SortedList mylist = new SortedList();
  
        // Adding elements to SortedList
        mylist.Add("First", "Ram");
        mylist.Add("Second", "Shyam");
        mylist.Add("Third", "Mohit");
        mylist.Add("Fourth", "Rohit");
        mylist.Add("Fifth", "Manish");
  
  
        // printing the keys and values of mylist
        Console.WriteLine("Index \t\t Keys \t\tValues");
  
        for (int i = 0; i < mylist.Count; i++) 
        {
            Console.WriteLine("[{0}]\t\t{1}\t\t{2}", i,
                mylist.GetKey(i), mylist.GetByIndex(i));
        }
          
        Console.Write("\nThe index of key 'Third' is: "); 
          
        // getting the index of key "Third"
        Console.Write(mylist.IndexOfKey("Third"));
          
        // getting the index of key which is
        // not present in mylist so it will
        // return -1
        Console.Write("\nThe index of key 'Sixth' is: "); 
        Console.Write(mylist.IndexOfKey("Sixth"));
    }
}

Producción:

Index          Keys         Values
[0]        Fifth        Manish
[1]        First        Ram
[2]        Fourth        Rohit
[3]        Second        Shyam
[4]        Third        Mohit

The index of key 'Third' is: 4
The index of key 'Sixth' is: -1

Ejemplo 2: Para demostrar el caso donde ArgumentNullException puede ocurrir

// C# code to get the zero-based index
// of the specified key in a SortedList
// object
using System;
using System.Collections;
  
class Geeks {
  
    // Main Method
    public static void Main(String[] args)
    {
  
        // Creating a SortedList of integers
        SortedList mylist = new SortedList();
  
        // Adding elements to SortedList
        mylist.Add("1", "C++");
        mylist.Add("2", "Java");
        mylist.Add("3", "DSA");
        mylist.Add("4", "Python");
        mylist.Add("5", "C#");
  
  
        // printing the keys and values of mylist
        Console.WriteLine("Index \t\t Keys \t\tValues");
   
        for (int i = 0; i < mylist.Count; i++) 
        {
            Console.WriteLine("[{0}]\t\t{1}\t\t{2}", i,
                mylist.GetKey(i), mylist.GetByIndex(i));
        }
          
        Console.Write("\nThe index of key 'null' is: ");    
          
        // getting the index of key "null"
        // it will give ArgumentNullException
        Console.Write(mylist.IndexOfKey(null));
    }
}

Error de tiempo de ejecución:

Excepción no controlada:
System.ArgumentNullException: la clave no puede ser nula.
Nombre del parámetro: clave

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.
  • Este método utiliza un algoritmo de búsqueda binaria, por lo que este método es una operación O (log n), donde n es el conteo.

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 *