Jobber med hashtabeller i Unity
En hashtable er en samling nøkkel-verdi-par som lar deg lagre og hente data effektivt. Hver nøkkel i en hashtabell må være unik, og den brukes for å få tilgang til den tilsvarende verdien. I Unity er hashtabeller en del av System.Collections
navneområdet og kan være spesielt nyttig for lagring av ikke-generiske datastrukturer.
Opprette en hashtabell
For å bruke en hashtabell i Unity, må du først importere System.Collections
navneområdet og deretter initialisere et nytt hashtableobjekt. 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"]);
}
}
Legge til og få tilgang til data
Du kan legge til data til en hashtabell ved å bruke Add
-metoden. For å hente en verdi, bruk nøkkelen innenfor hakeparenteser:
myHashtable.Add("Health", 100);
int health = (int)myHashtable["Health"];
Debug.Log("Health: " + health);
Hvis en nøkkel allerede eksisterer, vil forsøk på å bruke Add
gi et unntak. Bruk i stedet nøkkelen direkte for å oppdatere verdien:
myHashtable["Health"] = 80; // Updates the value associated with the key
Se etter nøkler og verdier
For å sjekke om det finnes en nøkkel i hashtabellen, bruk ContainsKey
-metoden. På samme måte bruker du ContainsValue
for å se etter en verdi:
if (myHashtable.ContainsKey("Score"))
{
Debug.Log("Score exists: " + myHashtable["Score"]);
}
if (myHashtable.ContainsValue(1500))
{
Debug.Log("Value 1500 is in the Hashtable.");
}
Fjerning av data
Du kan fjerne en oppføring fra hashtabellen ved å bruke Remove
-metoden:
myHashtable.Remove("Level");
Debug.Log("Level removed.");
Iterering gjennom en hashtabell
For å iterere gjennom alle nøkkelverdi-parene i en hashtabell, bruk en foreach
-løkke:
foreach (DictionaryEntry entry in myHashtable)
{
Debug.Log("Key: " + entry.Key + ", Value: " + entry.Value);
}
Begrensninger for hashtabeller
Hashtabeller er ikke-generiske og mangler typesikkerhet. Hvis du trenger bedre type sikkerhet og ytelse, bør du vurdere å bruke den generiske Dictionary
fra System.Collections.Generic
navneområdet. Hashtabeller er hovedsakelig nyttige når du arbeider med ikke-generiske samlinger eller grensesnitt med eldre kodebaser.
Konklusjon
Hashtabeller i Unity gir en enkel måte å administrere nøkkelverdi-par i prosjektene dine. Selv om de ikke er den mest moderne samlingstypen, er de fortsatt et gyldig valg for mange scenarier. Ved å forstå hvordan du oppretter, får tilgang til og manipulerer hashtabeller, kan du administrere data effektivt i Unity-applikasjonene dine.