Collections& Genericsson ú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& HashTablefueron reemplazados por List& Dictionary. Ahora, los Arraylist& HashTableya no se utilizan en proyectos actuales.
Llegar a la diferencia entre HashTable& Dictionary, Dictionaryes genérico donde Hastableno 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);
}
}
}