CodeBlanks Logo Icon CodeBlanks

SortedDictionary

C# kursu · Orta seviye · Ders 78/116

SortedDictionary<K,V> ile sıralı anahtar koleksiyonunu öğrenirsin.

SortedDictionary<K,V>

SortedDictionary<K,V>, anahtarları her zaman sıralı tutar. Arka planda bir kırmızı-siyah ağaç (red-black tree) kullanır; her ekleme ve silme ağacı dengeler.

Sıralama anahtarın CompareTo yöntemine göre yapılır. Bir foreach döngüsü anahtarları artan sırada verir. Arama, Dictionary<K,V>'den daha yavaştır ama sıralı gezinme garantisi vardır.

Dictionary ve SortedDictionary farkı

Dictionary<K,V> hash tabanlıdır; arama yaklaşık O(1)'dir ama anahtarlar sırasız gezer. SortedDictionary<K,V> ağaç tabanlıdır; arama O(log n)'dir ama sıralı gezinme garantisi verir.

Sıralı çıktı gerektiren bir rapor ya da menü hazırlıyorsan SortedDictionary seç. Hızlı arama öncelikliyse ve sıralama önemli değilse Dictionary daha uygundur.

Uygulama Sıralı anahtarları yazdır

Aşağıdaki prices sıralı sözlüğüne üç meyve eklendi. foreach ile her anahtarı sıralı sırada Console.WriteLine ile yazdır.

Örnek çözümü göster
foreach ile kvp değişkenini gez, her adımda kvp.Key yazdır.
Örnek çözüm:
using System;
using System.Collections.Generic;

class Program
{
    static void Main()
    {
        var prices = new SortedDictionary<string, int>();
        prices.Add("kiraz", 2);
        prices.Add("elma", 5);
        prices.Add("armut", 3);
        foreach (var kvp in prices)
        {
            Console.WriteLine(kvp.Key);
        }
    }
}

Kendini test et

  1. Koleksiyonu sıralama özelliğine eşle

    Dictionary<K,V>
    Sırasız
    SortedDictionary<K,V>
    Ağaç tabanlı sıralı
    SortedList<K,V>
    Dizi tabanlı sıralı
  2. SortedDictionary bildirimi

    var prices = new SortedDictionary<____>();
    Cevabı göster
    var prices = new SortedDictionary<string, int>();
  3. SortedDictionary ne zaman tercih edilir?

    • En hızlı arama gerektiğinde
    • Bellek tasarrufu gerektiğinde
    • Anahtarlar sıralı gezilmeliyse
    • Çok az eleman varsa
    Cevabı göster

    Anahtarlar sıralı gezilmeliyse — Doğru. Sıralı gezinme gerektiğinde SortedDictionary kullanılır.

Orta seviye bölümündeki tüm dersler