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 keySe 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.