Unity'de Hashtable'larla Çalışma

Hashtable, verileri verimli bir şekilde depolamanıza ve almanıza olanak tanıyan bir anahtar-değer çiftleri koleksiyonudur. Bir Hashtable'daki her anahtar benzersiz olmalı ve karşılık gelen değere erişmek için kullanılır. Unity'de, Hashtable'lar System.Collections ad alanının bir parçasıdır ve özellikle genel olmayan veri yapılarını depolamak için yararlı olabilir.

Bir Hashtable Oluşturma

Unity'de bir Hashtable kullanmak için, önce System.Collections ad alanını içe aktarmanız ve ardından yeni bir Hashtable nesnesi başlatmanız gerekir. İşte bir örnek:

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

Veri Ekleme ve Verilere Erişim

Add metodunu kullanarak bir Hashtable'a veri ekleyebilirsiniz. Bir değeri almak için köşeli parantez içindeki anahtarı kullanın:

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

Bir anahtar zaten mevcutsa, Add kullanmaya çalışmak bir istisna oluşturacaktır. Bunun yerine, değeri güncellemek için anahtarı doğrudan kullanın:

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

Anahtar ve Değerleri Kontrol Etme

Hashtable'da bir anahtarın var olup olmadığını kontrol etmek için ContainsKey metodunu kullanın. Benzer şekilde, bir değeri kontrol etmek için ContainsValue metodunu kullanın:

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

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

Verilerin Kaldırılması

Remove metodunu kullanarak Hashtable'dan bir girdiyi kaldırabilirsiniz:

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

Hashtable Üzerinden Yineleme

Bir Hashtable'daki tüm anahtar-değer çiftleri arasında yineleme yapmak için foreach döngüsünü kullanın:

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

Hashtable'ların Sınırlamaları

Hashtable'lar genel olmayan ve tür güvenliğinden yoksundur. Daha iyi tür güvenliği ve performansa ihtiyacınız varsa, System.Collections.Generic ad alanından genel Dictionary kullanmayı düşünün. Hashtable'lar çoğunlukla genel olmayan koleksiyonlarla çalışırken veya eski kod tabanlarıyla arayüz oluştururken faydalıdır.

Çözüm

Unity'deki Hashtable'lar, projelerinizdeki anahtar-değer çiftlerini yönetmek için basit bir yol sağlar. En modern koleksiyon türü olmasalar da, birçok senaryo için geçerli bir seçim olmaya devam ederler. Hashtable'ların nasıl oluşturulacağını, erişileceğini ve işleneceğini anlayarak, Unity uygulamalarınızda verileri verimli bir şekilde yönetebilirsiniz.