Lavorare con le tabelle hash in Unity
Una Hashtable è una raccolta di coppie chiave-valore che consente di archiviare e recuperare dati in modo efficiente. Ogni chiave in una Hashtable deve essere univoca e viene utilizzata per accedere al valore corrispondente. In Unity, le Hashtable fanno parte dello spazio dei nomi System.Collections
e possono essere particolarmente utili per archiviare strutture di dati non generiche.
Creazione di una tabella hash
Per usare un Hashtable in Unity, devi prima importare lo spazio dei nomi System.Collections
e poi inizializzare un nuovo oggetto Hashtable. Ecco un esempio:
using System.Collections;
using UnityEngine;
public class HashtableExample : MonoBehaviour
{
void Start()
{
Hashtable myHashtable = new Hashtable();
// Adding key-value pairs
myHashtable.Add("PlayerName", "Alex");
myHashtable.Add("Score", 1500);
myHashtable.Add("Level", 5);
// Accessing values
Debug.Log("Player Name: " + myHashtable["PlayerName"]);
Debug.Log("Score: " + myHashtable["Score"]);
Debug.Log("Level: " + myHashtable["Level"]);
}
}
Aggiunta e accesso ai dati
Puoi aggiungere dati a un Hashtable usando il metodo Add
. Per recuperare un valore, usa la chiave tra parentesi quadre:
myHashtable.Add("Health", 100);
int health = (int)myHashtable["Health"];
Debug.Log("Health: " + health);
Se una chiave esiste già, il tentativo di usare Add
genererà un'eccezione. Invece, usa la chiave direttamente per aggiornare il valore:
myHashtable["Health"] = 80; // Updates the value associated with the key
Controllo di chiavi e valori
Per verificare se una chiave esiste nell'Hashtable, usa il metodo ContainsKey
. Analogamente, usa ContainsValue
per verificare un valore:
if (myHashtable.ContainsKey("Score"))
{
Debug.Log("Score exists: " + myHashtable["Score"]);
}
if (myHashtable.ContainsValue(1500))
{
Debug.Log("Value 1500 is in the Hashtable.");
}
Rimozione dei dati
È possibile rimuovere una voce dall'Hashtable utilizzando il metodo Remove
:
myHashtable.Remove("Level");
Debug.Log("Level removed.");
Iterazione attraverso una tabella hash
Per scorrere tutte le coppie chiave-valore in una Hashtable, utilizzare un ciclo foreach
:
foreach (DictionaryEntry entry in myHashtable)
{
Debug.Log("Key: " + entry.Key + ", Value: " + entry.Value);
}
Limitazioni delle tabelle hash
Le tabelle hash non sono generiche e non hanno sicurezza di tipo. Se hai bisogno di una migliore sicurezza di tipo e prestazioni, considera di usare il generico Dictionary
dallo spazio dei nomi System.Collections.Generic
. Le tabelle hash sono utili principalmente quando si lavora con raccolte non generiche o si interagisce con vecchie basi di codice.
Conclusione
Le tabelle hash in Unity forniscono un modo semplice per gestire le coppie chiave-valore nei tuoi progetti. Sebbene non siano il tipo di raccolta più moderno, rimangono una scelta valida per molti scenari. Comprendendo come creare, accedere e manipolare le tabelle hash, puoi gestire i dati in modo efficiente nelle tue applicazioni Unity.