C# Dictionary Kullanımı

Dictionary sınıfı eklendiği elemanları key ve value olarak kaydetmemize yarayan bir sınıfdır.

Bu sınıfın özelliğini kullanabilmemiz için System.Collections.Generic kütüphanesini ilk önce eklememiz lazım.

Unutmadan eğer key  değerine göre otomatik sıralı bir liste oluşturmak istersek SortedList kullanmak daha iyi olur.

var kullanicilar = new Dictionary<int,string>();
//Diğer listelerde olduğu gibi Add() metodu ile ekleme yapıyoruz..
kullanicilar.Add(0, "Kerem ÖZER");
kullanicilar.Add(1, "Ali RODOPLU");
kullanicilar.Add(2, "Okan BİLİR");
kullanicilar.Add(3, "Sinan ERTAN");
kullanicilar.Add(4, "Fukan BİÇER");
kullanicilar.Add(5, "Emirhan DAĞLIOĞLU");

//Diğer listlerden biraz daha farklı yazdırma işlemi
//Keyvaluepair dictionarydeki keymiz,
//ve dictionarydeki value değer tipmiz ne ise onları aynen burada da yazıyoruz
foreach (KeyValuePair kullanici in kullanicilar)
{
    Console.WriteLine("ID =>"+kullanici.Key+"\t"+"Ad Soyad =>"+kullanici.Value);
}
//Burada dikkat etmemiz gereken nokta
//Dictionary key uniqtir yani benzersiz
//Aynı değerler gelirse hata vericektir
//Peki bunu nasıl önlüyoruz
string yeniKullanici = "Ekrem AYDEMİR";
bool varMi = kullanicilar.TryGetValue(0, out yeniKullanici);
//varsa true yoksa false dondürücek
if (varMi)
{
    //Böyle bir key mevcut
    Console.WriteLine("Bu ID de bir kullanici mevcuttur.");
}
else
{
    //Değil ise ekleme işlemini yapalım
    kullanicilar.Add(0, yeniKullanici);
    Console.WriteLine("Ekleme işlemi başarıyla gerçekleşmiştir.");
}

Bir de bu örneği SortedList olarak görelim hem de baştaki belirtmiş olduğumuz mevzuyu daha iyi anlamiş oluruz.

var kullanicilarSortedList = new SortedList<int,string>();
var kullanicilarDictionary = new Dictionary<int,string>();
kullanicilarSortedList.Add(3, "Sinan ERTAN");
kullanicilarSortedList.Add(1, "Ali RODOPLU");
kullanicilarSortedList.Add(2, "Okan BİLİR");
kullanicilarSortedList.Add(5, "Emirhan DAĞLIOĞLU");
kullanicilarSortedList.Add(4, "Fukan BİÇER");
kullanicilarSortedList.Add(0, "Kerem ÖZER");

//Aynı şekilde dictionary de ekleyelim
kullanicilarDictionary.Add(3, "Sinan ERTAN");
kullanicilarDictionary.Add(1, "Ali RODOPLU");
kullanicilarDictionary.Add(2, "Okan BİLİR");
kullanicilarDictionary.Add(5, "Emirhan DAĞLIOĞLU");
kullanicilarDictionary.Add(4, "Fukan BİÇER");
kullanicilarDictionary.Add(0, "Kerem ÖZER");

Console.WriteLine("Dictionary ile");
foreach (KeyValuePair<int,string> kullanici in kullanicilarDictionary)
{
    Console.WriteLine("ID =>"+kullanici.Key+"\t"+"Ad Soyad =>"+kullanici.Value);
}
Console.WriteLine("");
Console.WriteLine("SortedList ile");

foreach (KeyValuePair<int,string> kullanici in kullanicilarSortedList)
{
    Console.WriteLine("ID =>"+kullanici.Key+"\t"+"Ad Soyad =>"+kullanici.Value);
}
//dictionary ile sonuç olarak eklediğimiz sıra ile göstermiş oldu
//sortedlist ile keylerini otomatik olarak sıralayarak göstermiş oldu