HybridDictionary intenta optimizar Hashtable. Implementa una lista enlazada y una estructura de datos de tabla hash. Implementa IDictionary usando ListDictionary cuando la colección es pequeña y Hashtable cuando la colección es grande.
Propiedades de la clase HybridDictionary:
- Esta clase se recomienda para los casos en los que se desconoce el número de elementos de un diccionario.
- Aprovecha el rendimiento mejorado de un ListDictionary con colecciones pequeñas y ofrece la flexibilidad de cambiar a un Hashtable que maneja colecciones más grandes mejor que ListDictionary.
- Si el tamaño inicial de la colección es mayor que el tamaño óptimo para ListDictionary, la colección se almacena en Hashtable para evitar la sobrecarga de copiar elementos de ListDictionary a Hashtable.
- Una clave no puede ser nula, pero un valor sí.
Constructores
Constructor | Descripción |
---|---|
DiccionarioHíbrido() | Crea un HybridDictionary vacío que distingue entre mayúsculas y minúsculas. |
Diccionario híbrido (booleano) | Crea un HybridDictionary vacío con la distinción entre mayúsculas y minúsculas especificada. |
Diccionario híbrido (Int32) | Crea un HybridDictionary que distingue entre mayúsculas y minúsculas con el tamaño inicial especificado. |
Diccionario híbrido (Int32, booleano) | Crea un HybridDictionary con el tamaño inicial especificado y la distinción entre mayúsculas y minúsculas. |
Ejemplo:
// C# code to create a HybridDictionary // with the specified initial size // and case sensitivity. using System; using System.Collections; using System.Collections.Specialized; class GFG { // Driver code public static void Main() { // Creating a HybridDictionary with the // specified initial size and case sensitivity. HybridDictionary myDict = new HybridDictionary(10, false); // Adding key/value pairs in myDict myDict.Add("I", "first"); // This will not raise exception as the // Collection is not case-insensitive myDict.Add("i", "first"); myDict.Add("II", "second"); myDict.Add("III", "third"); myDict.Add("IV", "fourth"); myDict.Add("V", "fifth"); // Displaying the key/value pairs in myDict foreach(DictionaryEntry de in myDict) Console.WriteLine(de.Key + " " + de.Value); } }
Producción:
III third V fifth II second i first I first IV fourth
Propiedades
Propiedad | Descripción |
---|---|
Contar | Obtiene el número de pares clave/valor contenidos en HybridDictionary. |
EsTamañoFijo | Obtiene un valor que indica si HybridDictionary tiene un tamaño fijo. |
es solo lectura | Obtiene un valor que indica si HybridDictionary es de solo lectura. |
Está sincronizado | Obtiene un valor que indica si HybridDictionary está sincronizado (seguro para subprocesos). |
Artículo[Objeto] | Obtiene o establece el valor asociado a la clave especificada. |
Llaves | Obtiene una ICollection que contiene las claves de HybridDictionary. |
SyncRoot | Obtiene un objeto que se puede usar para sincronizar el acceso a HybridDictionary. |
Valores | Obtiene una ICollection que contiene los valores de HybridDictionary. |
Ejemplo 1:
// C# code to get the number of key/value // pairs contained in the HybridDictionary. using System; using System.Collections; using System.Collections.Specialized; class GFG { // Driver code public static void Main() { // Creating a HybridDictionary named myDict HybridDictionary myDict = new HybridDictionary(); // Adding key/value pairs in myDict myDict.Add("Australia", "Canberra"); myDict.Add("Belgium", "Brussels"); myDict.Add("Netherlands", "Amsterdam"); myDict.Add("China", "Beijing"); myDict.Add("Russia", "Moscow"); myDict.Add("India", "New Delhi"); // To get count of key/value pairs in myDict Console.WriteLine("Total key/value pairs in myDict are : " + myDict.Count); } }
Producción:
Total key/value pairs in myDict are : 6
Ejemplo 2:
// C# code to check whether the // HybridDictionary is read-only. using System; using System.Collections; using System.Collections.Specialized; class GFG { // Driver code public static void Main() { // Creating a HybridDictionary named myDict HybridDictionary myDict = new HybridDictionary(); // Adding key/value pairs in myDict myDict.Add("A", "Apple"); myDict.Add("B", "Banana"); myDict.Add("C", "Cat"); myDict.Add("D", "Dog"); myDict.Add("E", "Elephant"); myDict.Add("F", "Fish"); // To check whether the HybridDictionary // is read-only. Console.WriteLine(myDict.IsReadOnly); } }
Producción:
False
Métodos
Método | Descripción |
---|---|
Añadir(Objeto, Objeto) | Agrega una entrada con la clave y el valor especificados en HybridDictionary. |
Claro() | Elimina todas las entradas del HybridDictionary. |
Contiene (Objeto) | Determina si HybridDictionary contiene una clave específica. |
Copiar a (array, Int32) | Copia las entradas de HybridDictionary en una instancia de Array unidimensional en el índice especificado. |
Es igual a (Objeto) | Determina si el objeto especificado es igual al objeto actual. |
ObtenerEnumerador() | Devuelve un IDictionaryEnumerator que itera a través de HybridDictionary. |
Obtener código hash() | Sirve como la función hash predeterminada. |
ObtenerTipo() | Obtiene el Tipo de la instancia actual. |
MemberwiseClone() | Crea una copia superficial del objeto actual. |
Eliminar (Objeto) | Elimina la entrada con la clave especificada de HybridDictionary. |
Enstringr() | Devuelve una string que representa el objeto actual. |
Ejemplo 1:
// C# code to copy the HybridDictionary // entries to a one-dimensional Array // instance at the specified index. using System; using System.Collections; using System.Collections.Specialized; class GFG { // Driver code public static void Main() { // Creating a HybridDictionary named myDict HybridDictionary myDict = new HybridDictionary(); // Adding key/value pairs in myDict myDict.Add("A", "Apple"); myDict.Add("B", "Banana"); myDict.Add("C", "Cat"); myDict.Add("D", "Dog"); myDict.Add("E", "Elephant"); myDict.Add("F", "Fish"); // Creating a one-dimensional Array named myArr DictionaryEntry[] myArr = new DictionaryEntry[myDict.Count]; // copying the HybridDictionary entries // to a one-dimensional Array instance // at the specified index myDict.CopyTo(myArr, 0); for (int i = 0; i < myArr.Length; i++) Console.WriteLine(myArr[i].Key + " --> " + myArr[i].Value); } }
Producción:
A --> Apple B --> Banana C --> Cat D --> Dog E --> Elephant F --> Fish
Ejemplo 2:
// C# code to remove the entry // with the specified key from // the HybridDictionary. using System; using System.Collections; using System.Collections.Specialized; class GFG { // Driver code public static void Main() { // Creating a HybridDictionary named myDict HybridDictionary myDict = new HybridDictionary(); // Adding key/value pairs in myDict myDict.Add("A", "Apple"); myDict.Add("B", "Banana"); myDict.Add("C", "Cat"); myDict.Add("D", "Dog"); myDict.Add("E", "Elephant"); myDict.Add("F", "Fish"); // Displaying the number of key/value // pairs in HybridDictionary myDict Console.WriteLine("Number of key/value pairs in myDict are : " + myDict.Count); // Removing the entry with the // specified key from the HybridDictionary. myDict.Remove("C"); // Displaying the number of key/value // pairs in HybridDictionary myDict Console.WriteLine("Number of key/value pairs in myDict are : " + myDict.Count); } }
Producción:
Number of key/value pairs in myDict are : 6 Number of key/value pairs in myDict are : 5
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