Sobes.tech
Junior

C#-də lüğətdə açar ilə dəyəri necə əldə etmək olar?

sobes.tech Süni İntellekt

AI-dan cavab

Açar ilə indeksləyici və ya TryGetValue metodundan istifadə edə bilərsiniz.

  1. İndeksləyici ([açar]):

    • Verilən açar üçün dəyəri qaytarır.
    • Əgər açar mövcud deyilsə, KeyNotFoundException atır.
    // İndeksləyicinin istifadəsi nümunəsi
    Dictionary<string, int> yaşlar = new Dictionary<string, int>();
    yaşlar["Alice"] = 30;
    
    int AliceYas = yaşlar["Alice"]; // Dəyəri alır
    
    // yaşlar["Bob"]; // "Bob" açarı yoxdursa, KeyNotFoundException atacaq
    
  2. TryGetValue(açar, out dəyər) metodu:

    • Verilən açar üçün dəyəri tapmağa çalışır.
    • Əgər açar tapılsa, true qaytarır və dəyəri dəyər dəyişəninə təyin edir.
    • Əks halda, false qaytarır və dəyər standart dəyərdə olacaq.
    • Potensial olaraq mövcud olmayan açarlarla işləmək üçün daha təhlükəsizdir.
    // `TryGetValue` istifadə nümunəsi
    Dictionary<string, int> yaşlar = new Dictionary<string, int>();
    yaşlar["Alice"] = 30;
    
    int AliceYas;
    if (yaşlar.TryGetValue("Alice", out AliceYas))
    {
        // "Alice" açarı tapıldı, AliceYas 30
        // ... istifadə edin
    }
    
    int BobYas;
    if (yaşlar.TryGetValue("Bob", out BobYas))
    {
        // Bu blok icra olunmayacaq, çünki "Bob" açarı yoxdur
    }
    else
    {
        // "Bob" açarı tapılmadı, BobYas 0 (standart dəyər)
    }
    

Həmçinin, GetValueOrDefault(açar) metodundan istifadə etmək mümkündür ( .NET Core 2.1+ və .NET Standard 2.1+ ), bu metod göstərilən açar üçün dəyəri və ya standart dəyəri qaytarır, əgər açar tapılmazsa.

// `GetValueOrDefault` istifadə nümunəsi
Dictionary<string, int> yaşlar = new Dictionary<string, int>();
yaşlar["Alice"] = 30;

int AliceYas = yaşlar.GetValueOrDefault("Alice"); // 30
int BobYas = yaşlar.GetValueOrDefault("Bob");     // 0 (standart dəyər)