עבודה עם 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 שלך.