Diferencia entre Hashtable y Dictionary en C#

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

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *