En C#, Dictionary es una colección genérica que generalmente se usa para almacenar pares clave/valor. El diccionario se define en el espacio de nombres System.Collection.Generics . Es de naturaleza dinámica, lo que significa que el tamaño del diccionario crece según la necesidad.
Ejemplo:
// C# program to illustrate Dictionary using System; using System.Collections.Generic; class GFG { // Main Method static public void Main() { // Creating a dictionary // using Dictionary<TKey, TValue> class Dictionary<string, string> My_dict = new Dictionary<string, string>(); // Adding key/value pairs in the Dictionary // Using Add() method My_dict.Add("a.01", "C"); My_dict.Add("a.02", "C++"); My_dict.Add("a.03", "C#"); foreach(KeyValuePair<string, string> element in My_dict) { Console.WriteLine("Key:- {0} and Value:- {1}", element.Key, element.Value); } } }
Producción:
Key:- a.01 and Value:- C Key:- a.02 and Value:- C++ Key:- a.03 and Value:- C#
Una tabla hash es una colección de pares clave/valor que se organizan en función del código hash de la clave. O, en otras palabras, se usa una tabla hash para crear una colección que usa una tabla hash para el almacenamiento. Es el tipo de colección no genérico que se define en el espacio de nombres System.Collections . En Hashtable, los objetos clave deben ser inmutables siempre que se usen como claves en Hashtable.
Ejemplo:
// C# program to illustrate a hashtable using System; using System.Collections; class GFG { // Main method static public void Main() { // Create a hashtable // Using Hashtable class Hashtable my_hashtable = new Hashtable(); // Adding key/value pair in the hashtable // Using Add() method my_hashtable.Add("A1", "Welcome"); my_hashtable.Add("A2", "to"); my_hashtable.Add("A3", "GeeksforGeeks"); foreach(DictionaryEntry element in my_hashtable) { Console.WriteLine("Key:- {0} and Value:- {1} ", element.Key, element.Value); } } }
Producción:
Key:- A3 and Value:- GeeksforGeeks Key:- A2 and Value:- to Key:- A1 and Value:- Welcome
Hashtable Vs Diccionario
Tabla de picadillo | Diccionario |
---|---|
Una Hashtable es una colección no genérica. | Un diccionario es una colección genérica. |
Hashtable se define en el espacio de nombres System.Collections. | El diccionario se define en el espacio de nombres System.Collections.Generic. |
En Hashtable, puede almacenar pares clave/valor del mismo tipo o de diferente tipo. | En Diccionario, puede almacenar pares clave/valor del mismo tipo. |
En Hashtable, no es necesario especificar el tipo de clave y valor. | En Diccionario, debe especificar el tipo de clave y valor. |
La recuperación de datos es más lenta que en Diccionario debido al empaquetado/desempaquetado. | La recuperación de datos es más rápida que Hashtable debido a que no se empaqueta/desempaqueta. |
En Hashtable, si intenta acceder a una clave que no se presenta en el Hashtable dado, dará valores nulos. | En el Diccionario, si intenta acceder a una clave que no se presenta en el Diccionario dado, dará un error. |
Es seguro para subprocesos. | También es seguro para subprocesos, pero solo para miembros públicos estáticos. |
No mantiene el orden de los valores almacenados. | Siempre mantiene el orden de los valores almacenados. |
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