Lucrul cu Hashtables în Unity

Un hashtable este o colecție de perechi cheie-valoare care vă permite să stocați și să preluați datele în mod eficient. Fiecare cheie dintr-un Hashtable trebuie să fie unică și este folosită pentru a accesa valoarea corespunzătoare. În Unity, Hashtables fac parte din spațiul de nume System.Collections și pot fi deosebit de utile pentru stocarea structurilor de date negenerice.

Crearea unui Hashtable

Pentru a utiliza un Hashtable în Unity, mai întâi trebuie să importați spațiul de nume System.Collections și apoi să inițializați un nou obiect Hashtable. Iată un exemplu:

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"]);
    }
}

Adăugarea și accesarea datelor

Puteți adăuga date la o tabelă Hash folosind metoda Add. Pentru a prelua o valoare, utilizați cheia dintre paranteze pătrate:

myHashtable.Add("Health", 100);
int health = (int)myHashtable["Health"];
Debug.Log("Health: " + health);

Dacă o cheie există deja, încercarea de a utiliza Add va genera o excepție. În schimb, utilizați direct cheia pentru a actualiza valoarea:

myHashtable["Health"] = 80; // Updates the value associated with the key

Verificarea cheilor și a valorilor

Pentru a verifica dacă o cheie există în Hashtable, utilizați metoda ContainsKey. În mod similar, utilizați ContainsValue pentru a verifica o valoare:

if (myHashtable.ContainsKey("Score"))
{
    Debug.Log("Score exists: " + myHashtable["Score"]);
}

if (myHashtable.ContainsValue(1500))
{
    Debug.Log("Value 1500 is in the Hashtable.");
}

Eliminarea datelor

Puteți elimina o intrare din Hashtable folosind metoda Remove:

myHashtable.Remove("Level");
Debug.Log("Level removed.");

Iterarea printr-un hashtable

Pentru a itera prin toate perechile cheie-valoare dintr-un tabel Hash, utilizați o buclă foreach:

foreach (DictionaryEntry entry in myHashtable)
{
    Debug.Log("Key: " + entry.Key + ", Value: " + entry.Value);
}

Limitările Hashtablelor

Hashtables nu sunt generice și nu sunt sigure de tip. Dacă aveți nevoie de siguranță și performanță de tip mai bună, luați în considerare utilizarea genericului Dictionary din spațiul de nume System.Collections.Generic. Hashtables sunt utile în principal atunci când lucrați cu colecții non-generice sau interfațați cu baze de cod mai vechi.

Concluzie

Tabelele hash din Unity oferă o modalitate simplă de a gestiona perechile cheie-valoare în proiectele dvs. Deși nu sunt cel mai modern tip de colecție, ele rămân o alegere validă pentru multe scenarii. Înțelegând cum să creați, să accesați și să manipulați Hashtables, puteți gestiona eficient datele în aplicațiile dvs. Unity.