Özet - Generic koleksiyonlar
List, Dictionary ve Queue'yu birleştirerek bir görev kuyruğu yazarsın.
Özet - Generic koleksiyonlar
Bu grupta beş generic koleksiyonu derinlemesine gördün. List<T> dinamik dizi, Dictionary<K,V> hash tablo, SortedDictionary<K,V> sıralı ağaç, Queue<T> FIFO sıra, LinkedList<T> çift yönlü düğüm listesidir.
Her koleksiyon farklı bir güç için vardır: hızlı arama, sıralı gezinme, uçtan ekleme ya da bellek verimliliği. Şimdi iki küçük görevle bunları birlikte kullanacaksın.
Uygulama Listeye AddRange, sözlüğe aktar
Aşağıdaki list'e AddRange ile 4, 5, 6 ekle. Sonra list.Count'u Console.WriteLine ile yazdır.
Örnek çözümü göster
AddRange ile üç elemanı ekle, sonra Count'u yazdır.
Örnek çözüm:
using System;
using System.Collections.Generic;
class Program
{
static void Main()
{
var list = new List<int> { 1, 2, 3 };
list.AddRange(new[] { 4, 5, 6 });
Console.WriteLine(list.Count);
}
}
Uygulama Sözlükte ContainsKey kontrolü
Aşağıdaki prices sözlüğünde ContainsKey ile "elma" anahtarını kontrol et; sonucu Console.WriteLine ile yazdır.
Örnek çözümü göster
ContainsKey bir bool döner; sonucu WriteLine ile yazdır.
Örnek çözüm:
using System;
using System.Collections.Generic;
class Program
{
static void Main()
{
var prices = new Dictionary<string, int>();
prices.Add("elma", 5);
prices.Add("armut", 3);
Console.WriteLine(prices.ContainsKey("elma"));
}
}
Koleksiyon seçimi
Doğru koleksiyonu seçmek performansı belirler. Hızlı arama için Dictionary<K,V>, sıralı gezinme için SortedDictionary<K,V>, FIFO sıra için Queue<T>, uçtan hızlı ekleme için LinkedList<T> uygundur.
Bir sonraki grupta yineleme arayüzlerini ve yield anahtar kelimesini öğreneceksin; kendi koleksiyonunu yazabileceksin.
Kendini test et
-
Benzersiz ve sıralı anahtarlar için?
- List<T>
- SortedDictionary<K,V>
- Queue<T>
- LinkedList<T>
Cevabı göster
SortedDictionary<K,V> — Doğru. SortedDictionary benzersiz anahtarları sıralı tutar.
-
Sıralı sözlüğü tamamla
var ordered = new Sorted____<string, int>();Cevabı göster
var ordered = new SortedDictionary<string, int>();