En C#, SortedDictionary es una colección genérica que se utiliza para almacenar los pares clave/valor en forma ordenada y la clasificación se realiza en la clave. SortedDictionary se define en el espacio de nombres System.Collection.Generic . Es de naturaleza dinámica, lo que significa que el tamaño del diccionario ordenado crece según la necesidad.
Puntos importantes:
- La clase SortedDictionary implementa el
- ICollection<KeyValuePair<TKey, TValue>> Interfaz
- Interfaz IDictionary<TKey, TValue>
- Interfaz IEnumerable<KeyValuePair<TKey, TValue>>
- Interfaz IEnumerable<T>
- IReadOnlyCollection<KeyValuePair<TKey, TValue>> Interfaz
- Interfaz IReadOnlyDictionary<TKey, TValue>
- Interfaz ICollection
- Interfaz de IDiccionario
- Interfaz IEnumerable
- En SortedDictionary, la clave debe ser única. No se permiten llaves duplicadas.
- En SortedDictionary, las claves son inmutables y no pueden ser nulas.
- En SortedDictionary, el valor puede ser nulo cuando el tipo del valor es de tipo de referencia.
- Proporciona operaciones de inserción y eliminación más rápidas para datos no clasificados.
- En SortedDictionary, solo puede almacenar los mismos tipos de pares clave/valor.
- La capacidad de un SortedDictionary es el número de pares clave/valor que SortedDictionary puede contener.
- Ordena en orden ascendente.
¿Cómo crear un diccionario ordenado?
Una clase SortedDictionary tiene 4 constructores que se utilizan para crear un SortedDictionary y los constructores son los siguientes:
- SortedDictionary<TKey, TValue>(): este constructor se usa para crear una instancia de la clase SortedDictionary que está vacía y usa la implementación predeterminada de IComparer para el tipo de clave.
- SortedDictionary<TKey, TValue>(IComparer): este constructor se usa para crear una instancia de la clase SortedDictionary que está vacía y usa la implementación de IComparer especificada para comparar claves.
- SortedDictionary<TKey, TValue>(IDictionary): este constructor se usa para crear una instancia de la clase SortedDictionary que contiene elementos copiados del IDictionary especificado y usa la implementación predeterminada de IComparer para el tipo de clave.
- SortedDictionary<TKey, TValue>(IDictionary, IComparer): este constructor se usa para crear una instancia de la clase SortedDictionary que contiene elementos copiados del IDictionary especificado y usa la implementación de IComparer especificada para comparar claves.
Veamos cómo crear un SortedDictionary usando el constructor SortedDictionary<TKey, TValue>() :
Paso 1: Incluya el espacio de nombres System.Collection.Generics en su programa con la ayuda del uso de palabras clave.
using System.Collection.Generics;
Paso 2: Cree un SortedDictionary usando la clase SortedDictionary<TKey, TValue> como se muestra a continuación:
SortedDictionary<Tipo_de_clave, Tipo_de_valor> sorteddictionary_name = new SortedDictionary<Tipo_de_clave, Tipo_de_valor>();
Paso 3: si desea agregar elementos en su SortedDictionary, use el método Add() para agregar pares clave/valor en su SortedDictionary. Y también puede agregar un par clave/valor en SortedDictionary usando Collection Initializer.
Paso 4: se accede al par clave/valor de SortedDictionary mediante un bucle foreach , un valor de índice o un bucle for.
Ejemplo:
// C# program to illustrate how // to create sorted dictionary using System; using System.Collections.Generic; class GFG { // Main Method static public void Main() { // Creating sorted dictionary // Using SortedDictionary class SortedDictionary<int, string> My_sdict = new SortedDictionary<int, string>(); // Adding key/value pair in Sorted // Dictionary Using Add() method My_sdict.Add(004, "Ask.com"); My_sdict.Add(003, "Yahoo"); My_sdict.Add(001, "Google"); My_sdict.Add(005, "AOL.com"); My_sdict.Add(002, "Bing"); Console.WriteLine("Top Search Engines:"); // Accessing the key/value pair of the // SortedDictionary Using foreach loop foreach(KeyValuePair<int, string> pair in My_sdict) { Console.WriteLine("Rank: {0} and Name: {1}", pair.Key, pair.Value); } // Creating another sorted dictionary // using SortedDictionary<TKey, TValue> class // adding key/value pairs // Using collection initializer SortedDictionary<int, string> My_sdict1 = new SortedDictionary<int, string>() { {1, "Python"}, {5, "Swift"}, {2, "JavaScript"}, {4, "Go" }, {3, "Rust"}}; Console.WriteLine("Top Programming Language in 2019: "); // Accessing the key/value pair of the // SortedDictionary Using foreach loop foreach(KeyValuePair<int, string> pair in My_sdict1) { Console.WriteLine("Rank:{0} and Name: {1}", pair.Key, pair.Value); } } }
Top Search Engines: Rank: 1 and Name: Google Rank: 2 and Name: Bing Rank: 3 and Name: Yahoo Rank: 4 and Name: Ask.com Rank: 5 and Name: AOL.com Top Programming Language in 2019: Rank:1 and Name: Python Rank:2 and Name: JavaScript Rank:3 and Name: Rust Rank:4 and Name: Go Rank:5 and Name: Swift
¿Cómo eliminar elementos del SortedDictionary?
En SortedDictionary, se permite eliminar elementos de SortedDictionary. La clase SortedDictionary<TKey, TValue> proporciona dos métodos diferentes para eliminar elementos y los métodos son:
- Clear() : este método se usa para eliminar todos los elementos del SortedDictionary.
- Remove(TKey) : este método se utiliza para eliminar el elemento con la clave especificada del SortedDictionary.
Ejemplo:
// C# program to illustrate how to // Remove key/value pair from the // SortedDictionary using System; using System.Collections.Generic; class GFG { // Main Method static public void Main() { // Creating sorted dictionary // Using SortedDictionary class SortedDictionary<int, string> My_sdict = new SortedDictionary<int, string>(); // Adding key/value pair in // SortedDictionary Using // the Add() method My_sdict.Add(001, "Google"); My_sdict.Add(002, "Bing"); My_sdict.Add(003, "Yahoo"); My_sdict.Add(004, "Ask.com"); My_sdict.Add(005, "AOL.com"); // Initial number of key/value pairs Console.WriteLine("Key/Value pair: {0}", My_sdict.Count); // After using Remove(TKey) method My_sdict.Remove(002); Console.WriteLine("Key/Value pair: {0}", My_sdict.Count); // After using Clear() method My_sdict.Clear(); Console.WriteLine("Key/Value pair: {0}", My_sdict.Count); } }
Key/Value pair: 5 Key/Value pair: 4 Key/Value pair: 0
¿Cómo verificar la disponibilidad del par clave/valor en SortedDictionary?
En SortedDictionary, puede verificar si la clave o el valor dado está presente en el SortedDictionary especificado o no. La clase SortedDictionary<TKey, TValue> proporciona dos métodos diferentes para verificar y los métodos son:
- Contiene clave (TKey) : este método se utiliza para determinar si SortedDictionary contiene un elemento con la clave especificada.
- ContieneValor(TValor) : Este método se usa para determinar si SortedDictionary contiene un elemento con el valor especificado.
Ejemplo:
// C# program to illustrate how to // check the given key/value pair // is exists or not in SortedDictionary using System; using System.Collections.Generic; class GFG { // Main Method static public void Main() { // Creating sorted dictionary // Using SortedDictionary class SortedDictionary<int, string> My_sdict = new SortedDictionary<int, string>(); // Adding key/value pair // in SortedDictionary // Using Add() method My_sdict.Add(001, "Google"); My_sdict.Add(002, "Bing"); My_sdict.Add(003, "Yahoo"); My_sdict.Add(004, "Ask.com"); My_sdict.Add(005, "AOL.com"); // Using ContainsKey(TKey) method if (My_sdict.ContainsKey(004) == true) { Console.WriteLine("Key Found.."); } else { Console.WriteLine("Key Not Found.."); } // Using ContainsValue(TValue) method if (My_sdict.ContainsValue("Baidu") == true) { Console.WriteLine("Value Found.."); } else { Console.WriteLine("Value Not Found.."); } } }
Key Found.. Value Not Found..
Publicación traducida automáticamente
Artículo escrito por ankita_saini y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA