Collections& Genericssont utiles pour gérer un groupe d'objets. Dans .NET, tous les objets de collections relèvent de l'interface IEnumerable, qui à son tour a ArrayList(Index-Value))& HashTable(Key-Value). Après .NET Framework 2.0, ArrayList& a HashTableété remplacé par List& Dictionary. Maintenant, le Arraylist& HashTablen'est plus utilisé dans les projets de nos jours.
Venant à la différence entre HashTable& Dictionary, Dictionaryest générique alors que as Hastablen'est pas générique. Nous pouvons ajouter n'importe quel type d'objet HashTable, mais lors de la récupération, nous devons le convertir en le type requis. Donc, ce n'est pas un type sûr. Mais dictionary, tout en se déclarant, nous pouvons spécifier le type de clé et de valeur, il n'est donc pas nécessaire de transtyper lors de la récupération.
Regardons un exemple:
HashTable
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);
}
}
}
Dictionnaire,
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);
}
}
}