Gli HashTable ci permettono di salvare in memoria una lista coppie formate da chiave-valore ad esempio: "Rossi" - "Mario"; possiamo puntare direttamente al valore interessato attraverso la chiave.
La classe è inserita nel namespace System.Collections, che ha allinterno diverse classi e interfacce che raccolgono implementazioni per le liste e le collections, in un precedente articolo abbiamo già visto l'uso di questo namespace attraverso la classe System.ArrayList.
Per inserire una nuova coppia basta utilizzare il metodo Add:
C#
Listato n°1
HashTable lista = new HastTable();
lista.Add[Rossi,Mario];
VB.NET
Listato n°2
Dim Lista as New HastTable()
Lista.Add(Rossi,Mario)
La chiave è una stringa è non può essere null, mentre il secondo parametro è unobject e può essere anche null.
Essendo il secondo parametro unobject possiamo inserire come valore qualunque cosa, quindi in questo modo la nostra lista diventa molto dinamica e flessibile dandoci la possibilità di inserire oggetti eterogenei.
Per recuperare il valore basta puntare con la chiave e castare loggetto in modo adeguato
C#
Listato n°3
string nome = (string)lista[Rossi];
VB.NET
Listato n°4
Dim nome as String = Ctype(list(Rossi),string)
Se invece non conosciamo la chiave possiamo ciclare tra le coppie, per fare questo dobbiamo utilizzare la classe DictionaryEntry, che rappresenta la coppia chiave-valore
C#
Listato n°5
for each(DictionaryEntry entry in lista)
{
String chiave = entry.key;
String valore = (string)entry.value;
}
VB.NET
Listato n°6
Dim entry as DictionaryEntry.
For each entry in lista
Dim chiave as string = entry.key
Dim valore as string = Ctype(entry.value,string)
Next

Rispondi quotando