Arbeiten mit Hashtabellen in Unity
Eine Hashtabelle ist eine Sammlung von Schlüssel-Wert-Paaren, mit denen Sie Daten effizient speichern und abrufen können. Jeder Schlüssel in einer Hashtabelle muss eindeutig sein und wird verwendet, um auf den entsprechenden Wert zuzugreifen. In Unity sind Hashtabellen Teil des System.Collections
-Namespace und können besonders nützlich sein, um nicht generische Datenstrukturen zu speichern.
Erstellen einer Hashtabelle
Um eine Hashtable in Unity zu verwenden, müssen Sie zuerst den Namespace System.Collections
importieren und dann ein neues Hashtable-Objekt initialisieren. Hier ist ein Beispiel:
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"]);
}
}
Hinzufügen und Zugreifen auf Daten
Sie können Daten zu einer Hashtabelle mit der Methode Add
hinzufügen. Um einen Wert abzurufen, verwenden Sie den Schlüssel in eckigen Klammern:
myHashtable.Add("Health", 100);
int health = (int)myHashtable["Health"];
Debug.Log("Health: " + health);
Wenn ein Schlüssel bereits vorhanden ist, wird beim Versuch, Add
zu verwenden, eine Ausnahme ausgelöst. Verwenden Sie stattdessen den Schlüssel direkt, um den Wert zu aktualisieren:
myHashtable["Health"] = 80; // Updates the value associated with the key
Überprüfen von Schlüsseln und Werten
Um zu prüfen, ob ein Schlüssel in der Hashtabelle vorhanden ist, verwenden Sie die Methode ContainsKey
. Verwenden Sie analog dazu ContainsValue
, um nach einem Wert zu suchen:
if (myHashtable.ContainsKey("Score"))
{
Debug.Log("Score exists: " + myHashtable["Score"]);
}
if (myHashtable.ContainsValue(1500))
{
Debug.Log("Value 1500 is in the Hashtable.");
}
Daten entfernen
Sie können einen Eintrag aus der Hashtabelle mit der Methode Remove
entfernen:
myHashtable.Remove("Level");
Debug.Log("Level removed.");
Durch eine Hashtabelle iterieren
Um alle Schlüssel-Wert-Paare in einer Hashtabelle zu durchlaufen, verwenden Sie eine foreach
-Schleife:
foreach (DictionaryEntry entry in myHashtable)
{
Debug.Log("Key: " + entry.Key + ", Value: " + entry.Value);
}
Einschränkungen von Hashtabellen
Hashtabellen sind nicht generisch und bieten keine Typsicherheit. Wenn Sie eine bessere Typsicherheit und Leistung benötigen, sollten Sie das generische Dictionary
aus dem System.Collections.Generic
-Namespace verwenden. Hashtabellen sind vor allem dann nützlich, wenn Sie mit nicht generischen Sammlungen arbeiten oder mit älteren Codebasen interagieren.
Abschluss
Hashtabellen in Unity bieten eine unkomplizierte Möglichkeit, Schlüssel-Wert-Paare in Ihren Projekten zu verwalten. Obwohl sie nicht der modernste Sammlungstyp sind, bleiben sie für viele Szenarien eine gültige Wahl. Wenn Sie verstehen, wie Sie Hashtabellen erstellen, darauf zugreifen und sie bearbeiten, können Sie Daten in Ihren Unity-Anwendungen effizient verwalten.