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 all’interno 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 è un’object e può essere anche null.
Essendo il secondo parametro un’object 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 l’oggetto 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