Arbejde med hashtabeller i Unity
En hashtabel er en samling af nøgleværdi-par, der giver dig mulighed for at gemme og hente data effektivt. Hver nøgle i en hashtabel skal være unik, og den bruges til at få adgang til den tilsvarende værdi. I Unity er hashtabeller en del af System.Collections
navneområdet og kan være særligt nyttige til lagring af ikke-generiske datastrukturer.
Oprettelse af en hashtabel
For at bruge en hashtabel i Unity skal du først importere System.Collections
navneområdet og derefter initialisere et nyt hashtabelobjekt. Her er et eksempel:
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"]);
}
}
Tilføjelse og adgang til data
Du kan tilføje data til en hashtabel ved hjælp af Add
metoden. For at hente en værdi skal du bruge nøglen inden for firkantede parenteser:
myHashtable.Add("Health", 100);
int health = (int)myHashtable["Health"];
Debug.Log("Health: " + health);
Hvis en nøgle allerede eksisterer, vil forsøg på at bruge Add
give en undtagelse. Brug i stedet nøglen direkte til at opdatere værdien:
myHashtable["Health"] = 80; // Updates the value associated with the key
Tjek for nøgler og værdier
For at kontrollere, om der findes en nøgle i hashtabellen, skal du bruge ContainsKey
metoden. På samme måde skal du bruge ContainsValue
til at tjekke efter en værdi:
if (myHashtable.ContainsKey("Score"))
{
Debug.Log("Score exists: " + myHashtable["Score"]);
}
if (myHashtable.ContainsValue(1500))
{
Debug.Log("Value 1500 is in the Hashtable.");
}
Fjernelse af data
Du kan fjerne en post fra hashtabellen ved at bruge Remove
metoden:
myHashtable.Remove("Level");
Debug.Log("Level removed.");
Iteration gennem en hashtabel
Brug en foreach
-løkke for at gentage alle nøgleværdi-par i en hashtabel:
foreach (DictionaryEntry entry in myHashtable)
{
Debug.Log("Key: " + entry.Key + ", Value: " + entry.Value);
}
Begrænsninger af hashtabeller
Hashtables er ikke-generiske og mangler typesikkerhed. Hvis du har brug for bedre typesikkerhed og ydeevne, kan du overveje at bruge den generiske Dictionary
fra System.Collections.Generic
navneområdet. Hashtabeller er hovedsageligt nyttige, når du arbejder med ikke-generiske samlinger eller grænseflader med ældre kodebaser.
Konklusion
Hashtables i Unity giver en ligetil måde at administrere nøgleværdi-par i dine projekter. Selvom de ikke er den mest moderne samlingstype, forbliver de et gyldigt valg til mange scenarier. Ved at forstå, hvordan du opretter, får adgang til og manipulerer hashtabeller, kan du administrere data effektivt i dine Unity-applikationer.