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.