Junior
C#'ta sözlük (Dictionary) nedir?
sobes.tech yapay zeka
AI'dan gelen yanıt
C# dilinde Dictionary, anahtar-değer çiftleri saklayan ve her anahtarın benzersiz olduğu, karşılık gelen değere hızlı erişim sağlayan bir koleksiyondur. IDictionary<TKey, TValue>, ICollection<KeyValuePair<TKey, TValue>>, IEnumerable<KeyValuePair<TKey, TValue>>, IEnumerable arayüzlerini uygular. Bir karma tabloya dayanır.
Ana özellikler:
- Sıralı değil: Sözlükteki öğelerin sırası garanti edilmez ve ekleme/silme işlemleriyle değişebilir.
- Performans: Ekleme, silme ve anahtar arama işlemleri ortalama O(1) karmaşıklığa sahiptir (ideal durumda, hash çakışmaları olmadan) ve en kötü durumda O(n).
- Anahtarların benzersizliği: Her anahtar sözlükte benzersiz olmalıdır. Var olan anahtar ile öğe eklemeye çalışmak istisna oluşturur.
Kullanım örneği:
// Sözlük oluşturma
Dictionary<string, int> öğrenciler = new Dictionary<string, int>();
// Öğeler ekleme
öğrenciler.Add("Ivanov", 5);
öğrenciler["Petrov"] = 4; // Alternatif ekleme/güncelleme yöntemi
// Anahtarın var olup olmadığını kontrol etme
if (öğrenciler.ContainsKey("Ivanov"))
{
// Anahtar ile değeri alma
int not = öğrenciler["Ivanov"]; // not == 5
}
// Öğeleri döngüyle gezme
foreach (KeyValuePair<string, int> öğrenci in öğrenciler)
{
// öğrenci.Key - anahtar, öğrenci.Value - değer
Console.WriteLine($"{öğrenci.Key}: {öğrenci.Value}");
}
// Öğeyi kaldırma
öğrenciler.Remove("Petrov");
Diğer koleksiyonlarla karşılaştırma:
| Koleksiyon | Temel amacı | İndeksle erişim | Anahtar ile erişim | Anahtarların benzersizliği | Sıralama |
|---|---|---|---|---|---|
| List<T> | Öğelerin sıralı dizisi | Evet | Hayır | Hayır | Evet |
| HashSet<T> | Benzersiz öğe kümesi | Hayır | Hayır | Evet | Hayır |
| Dictionary<TKey, TValue> | Hızlı arama için anahtar-değer çiftleri | Hayır | Evet | Evet | Hayır |