Collections
e Generics
sono utili per la gestione di un gruppo di oggetti. In .NET, tutti gli oggetti delle raccolte rientrano nell'interfaccia IEnumerable
, che a sua volta ha ArrayList(Index-Value))
& HashTable(Key-Value)
. Dopo .NET Framework 2.0, ArrayList
e HashTable
sono stati sostituiti con List
& Dictionary
. Ora, i Arraylist
& HashTable
non sono più utilizzati nei progetti di oggi.
Venire alla differenza tra HashTable
& Dictionary
, Dictionary
è generico dove Hastable
non è generico. Possiamo aggiungere qualsiasi tipo di oggetto HashTable
, ma durante il recupero dobbiamo lanciarlo sul tipo richiesto. Quindi, non è sicuro. Ma per dictionary
dichiarare se stesso possiamo specificare il tipo di chiave e valore, quindi non è necessario eseguire il cast durante il recupero.
Diamo un'occhiata a un esempio:
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);
}
}
}
Dizionario,
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);
}
}
}