Collections
& Generics
sont 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
& HashTable
n'est plus utilisé dans les projets de nos jours.
Venant à la différence entre HashTable
& Dictionary
, Dictionary
est générique alors que as Hastable
n'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);
}
}
}