Collections
& Generics
son útiles para manejar grupos de objetos. En .NET, todos los objetos de colecciones vienen bajo la interfaz IEnumerable
, que a su vez tiene ArrayList(Index-Value))
& HashTable(Key-Value)
. Después de .NET Framework 2.0, ArrayList
& HashTable
fueron reemplazados por List
& Dictionary
. Ahora, los Arraylist
& HashTable
ya no se utilizan en proyectos actuales.
Llegar a la diferencia entre HashTable
& Dictionary
, Dictionary
es genérico donde Hastable
no es genérico. Podemos agregar cualquier tipo de objeto HashTable
, pero al recuperarlo necesitamos convertirlo al tipo requerido. Por lo tanto, no es de tipo seguro. Pero dictionary
, al declararse, podemos especificar el tipo de clave y valor, por lo que no es necesario emitir mientras se recupera.
Veamos un ejemplo:
Tabla de picadillo
class HashTableProgram
{
static void Main(string[] args)
{
Hashtable ht = new Hashtable();
ht.Add(1, "One");
ht.Add(2, "Two");
ht.Add(3, "Three");
foreach (DictionaryEntry de in ht)
{
int Key = (int)de.Key; //Casting
string value = de.Value.ToString(); //Casting
Console.WriteLine(Key + " " + value);
}
}
}
Diccionario,
class DictionaryProgram
{
static void Main(string[] args)
{
Dictionary<int, string> dt = new Dictionary<int, string>();
dt.Add(1, "One");
dt.Add(2, "Two");
dt.Add(3, "Three");
foreach (KeyValuePair<int, String> kv in dt)
{
Console.WriteLine(kv.Key + " " + kv.Value);
}
}
}