العمل مع Hashtables في Unity

جدول التجزئة هو مجموعة من أزواج القيمة والمفتاح التي تسمح لك بتخزين واسترجاع البيانات بكفاءة. يجب أن يكون كل مفتاح في جدول التجزئة فريدًا، ويُستخدم للوصول إلى القيمة المقابلة. في Unity، تعد جداول التجزئة جزءًا من مساحة اسم System.Collections ويمكن أن تكون مفيدة بشكل خاص لتخزين هياكل البيانات غير العامة.

إنشاء جدول تجزئة

لاستخدام جدول تجزئة في Unity، تحتاج أولاً إلى استيراد مساحة اسم System.Collections ثم تهيئة كائن جدول تجزئة جديد. فيما يلي مثال:

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

إضافة البيانات والوصول إليها

يمكنك إضافة بيانات إلى جدول تجزئة باستخدام طريقة 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

التحقق من المفاتيح والقيم

للتحقق من وجود مفتاح في جدول التجزئة، استخدم طريقة 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 باستخدام طريقة Remove:

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

التكرار من خلال جدول التجزئة

لتكرار جميع أزواج القيمة الرئيسية في جدول التجزئة، استخدم حلقة foreach:

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

حدود جداول التجزئة

جداول التجزئة ليست عامة وتفتقر إلى أمان النوع. إذا كنت بحاجة إلى أمان النوع والأداء الأفضل، ففكر في استخدام القاموس العام Dictionary من مساحة الاسم System.Collections.Generic. جداول التجزئة مفيدة بشكل أساسي عند العمل مع مجموعات غير عامة أو التفاعل مع قواعد بيانات أقدم.

خاتمة

توفر جداول التجزئة في Unity طريقة مباشرة لإدارة أزواج القيمة الرئيسية في مشاريعك. ورغم أنها ليست أحدث أنواع المجموعات، إلا أنها تظل خيارًا صالحًا للعديد من السيناريوهات. من خلال فهم كيفية إنشاء جداول التجزئة والوصول إليها والتلاعب بها، يمكنك إدارة البيانات بكفاءة في تطبيقات Unity الخاصة بك.