Praca z tablicami haszującymi w Unity

Hashtable to zbiór par klucz-wartość, który umożliwia wydajne przechowywanie i pobieranie danych. Każdy klucz w Hashtable musi być unikalny i służy do uzyskiwania dostępu do odpowiadającej mu wartości. W Unity Hashtable są częścią przestrzeni nazw System.Collections i mogą być szczególnie przydatne do przechowywania niegenerycznych struktur danych.

Tworzenie tablicy mieszającej

Aby użyć Hashtable w Unity, najpierw musisz zaimportować przestrzeń nazw System.Collections, a następnie zainicjować nowy obiekt Hashtable. Oto przykład:

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"]);
    }
}

Dodawanie i uzyskiwanie dostępu do danych

Możesz dodać dane do Hashtable za pomocą metody Add. Aby pobrać wartość, użyj klucza w nawiasach kwadratowych:

myHashtable.Add("Health", 100);
int health = (int)myHashtable["Health"];
Debug.Log("Health: " + health);

Jeśli klucz już istnieje, próba użycia Add spowoduje wyjątek. Zamiast tego użyj klucza bezpośrednio, aby zaktualizować wartość:

myHashtable["Health"] = 80; // Updates the value associated with the key

Sprawdzanie kluczy i wartości

Aby sprawdzić, czy klucz istnieje w Hashtable, użyj metody ContainsKey. Podobnie, użyj ContainsValue, aby sprawdzić wartość:

if (myHashtable.ContainsKey("Score"))
{
    Debug.Log("Score exists: " + myHashtable["Score"]);
}

if (myHashtable.ContainsValue(1500))
{
    Debug.Log("Value 1500 is in the Hashtable.");
}

Usuwanie danych

Możesz usunąć wpis z tablicy haszującej za pomocą metody Remove:

myHashtable.Remove("Level");
Debug.Log("Level removed.");

Iterowanie przez tablicę haszującą

Aby przejść przez wszystkie pary klucz-wartość w tablicy skrótów, należy użyć pętli foreach:

foreach (DictionaryEntry entry in myHashtable)
{
    Debug.Log("Key: " + entry.Key + ", Value: " + entry.Value);
}

Ograniczenia tablic mieszających

Tablice haszujące nie są generyczne i brakuje im bezpieczeństwa typu. Jeśli potrzebujesz lepszego bezpieczeństwa typu i wydajności, rozważ użycie generycznego Dictionary z przestrzeni nazw System.Collections.Generic. Tablice haszujące są przydatne głównie podczas pracy z kolekcjami niegenerycznymi lub interfejsami ze starszymi bazami kodu.

Wniosek

Tabele haszujące w Unity zapewniają prosty sposób zarządzania parami klucz-wartość w Twoich projektach. Chociaż nie są one najnowocześniejszym typem kolekcji, pozostają słusznym wyborem w wielu scenariuszach. Rozumiejąc, jak tworzyć, uzyskiwać dostęp i manipulować tablicami haszującymi, możesz wydajnie zarządzać danymi w swoich aplikacjach Unity.