Werken met hashtabellen in Unity

Een hashtabel is een verzameling sleutel-waardeparen waarmee u gegevens efficiënt kunt opslaan en ophalen. Elke sleutel in een hashtabel moet uniek zijn en wordt gebruikt om toegang te krijgen tot de bijbehorende waarde. In Unity maken hashtabellen deel uit van de System.Collections-naamruimte en kunnen ze met name handig zijn voor het opslaan van niet-generieke gegevensstructuren.

Een hashtabel maken

Om een ​​Hashtable in Unity te gebruiken, moet u eerst de System.Collections-naamruimte importeren en vervolgens een nieuw Hashtable-object initialiseren. Hier is een voorbeeld:

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

Gegevens toevoegen en openen

U kunt gegevens toevoegen aan een hashtabel met de Add-methode. Om een ​​waarde op te halen, gebruikt u de sleutel tussen vierkante haken:

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

Als er al een sleutel bestaat, zal het proberen om Add te gebruiken een uitzondering opleveren. Gebruik in plaats daarvan de sleutel rechtstreeks om de waarde bij te werken:

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

Controleren op sleutels en waarden

Om te controleren of een sleutel in de Hashtable bestaat, gebruikt u de ContainsKey-methode. Gebruik op dezelfde manier ContainsValue om te controleren op een waarde:

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

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

Gegevens verwijderen

U kunt een item uit de hashtabel verwijderen met de methode Remove:

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

Itereren door een hashtabel

Om door alle sleutel-waardeparen in een hashtabel te itereren, gebruikt u een foreach-lus:

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

Beperkingen van hashtabellen

Hashtabellen zijn niet-generiek en missen typesafety. Als u betere typesafety en prestaties nodig hebt, overweeg dan om de generieke Dictionary uit de System.Collections.Generic namespace te gebruiken. Hashtabellen zijn vooral handig bij het werken met niet-generieke collecties of bij het interfacen met oudere codebases.

Conclusie

Hashtabellen in Unity bieden een eenvoudige manier om sleutel-waardeparen in uw projecten te beheren. Hoewel ze niet het meest moderne type verzameling zijn, blijven ze een geldige keuze voor veel scenario's. Door te begrijpen hoe u hashtabellen kunt maken, openen en manipuleren, kunt u gegevens efficiënt beheren in uw Unity-toepassingen.