עבודה עם Hashtables ב-Unity

A Hashtable הוא אוסף של צמדי מפתח-ערך המאפשרים לך לאחסן ולאחזר נתונים ביעילות. כל מפתח ב-Hashtable חייב להיות ייחודי, והוא משמש לגישה לערך המתאים. ב-Unity, Hashtables הם חלק ממרחב השמות System.Collections ויכולים להיות שימושיים במיוחד לאחסון מבני נתונים לא-גנריים.

יצירת Hashtable

כדי להשתמש ב-Hashtable ב-Unity, תחילה עליך לייבא את מרחב השמות System.Collections ולאחר מכן לאתחל אובייקט חדש של Hashtable. הנה דוגמה:

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

הוספה וגישה לנתונים

אתה יכול להוסיף נתונים ל-Hashtable באמצעות שיטת Add. כדי לאחזר ערך, השתמש במפתח בתוך סוגריים מרובעים:

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

אם כבר קיים מפתח, ניסיון להשתמש ב-Add יגרום לחריגה. במקום זאת, השתמש במפתח ישירות כדי לעדכן את הערך:

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

בדיקת מפתחות וערכים

כדי לבדוק אם קיים מפתח ב-Hashtable, השתמש בשיטת ContainsKey. באופן דומה, השתמש ב-ContainsValue כדי לבדוק אם יש ערך:

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

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

הסרת נתונים

אתה יכול להסיר ערך מה-Hashtable בשיטת הסר:

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

איטרציה דרך Hashtable

כדי לחזור על כל צמדי המפתח-ערך ב-Hashtable, השתמש בלולאה foreach:

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

מגבלות של Hastables

Hashtables אינם כלליים וחסרי בטיחות מסוג. אם אתה צריך בטיחות וביצועים טובים יותר, שקול להשתמש ב-מילון הגנרי ממרחב השמות System.Collections.Generic. טבלאות Hashtable שימושיות בעיקר כאשר עובדים עם אוספים לא כלליים או התממשקות עם בסיסי קוד ישנים יותר.

מַסְקָנָה

Hashtables ב-Unity מספקים דרך פשוטה לנהל צמדי מפתח-ערך בפרויקטים שלך. למרות שהם לא סוג האוסף המודרני ביותר, הם נשארים בחירה תקפה עבור תרחישים רבים. על ידי הבנה כיצד ליצור, לגשת ולטפל ב-Hashtables, אתה יכול לנהל נתונים ביעילות ביישומי Unity שלך.