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.