SortedDictionary
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
-
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ı
-
SortedDictionary bildirimi
var prices = new SortedDictionary<____>();Cevabı göster
var prices = new SortedDictionary<string, int>(); -
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.