Sobes.tech
Junior

Πώς παίρνουμε την τιμή με το κλειδί σε ένα λεξικό σε C#;

sobes.tech AI

Απάντηση από AI

Μπορείτε να χρησιμοποιήσετε τον δείκτη με κλειδί ή τη μέθοδο TryGetValue.

  1. Δείκτης ([κλειδί]):

    • Επιστρέφει την τιμή για το συγκεκριμένο κλειδί.
    • Ρίχνει KeyNotFoundException αν το κλειδί δεν υπάρχει.
    // Παράδειγμα χρήσης δείκτη
    Dictionary<string, int> ηλικίες = new Dictionary<string, int>();
    ηλικίες["Alice"] = 30;
    
    int ηλικίαAlice = ηλικίες["Alice"]; // Λαμβάνει την τιμή
    
    // ηλικίες["Bob"]; // Θα ρίξει KeyNotFoundException αν το "Bob" δεν υπάρχει
    
  2. Μέθοδος TryGetValue(κλειδί, out τιμή):

    • Προσπαθεί να βρει την τιμή για το συγκεκριμένο κλειδί.
    • Επιστρέφει true αν το κλειδί βρέθηκε και αναθέτει την τιμή στη μεταβλητή τιμή.
    • Επιστρέφει false αν το κλειδί δεν βρέθηκε, και η τιμή θα έχει την προεπιλεγμένη τιμή για τον τύπο.
    • Είναι πιο ασφαλές όταν δουλεύετε με πιθανά απουσιάζοντα κλειδιά.
    // Παράδειγμα χρήσης της TryGetValue
    Dictionary<string, int> ηλικίες = new Dictionary<string, int>();
    ηλικίες["Alice"] = 30;
    
    int ηλικίαAlice;
    if (ηλικίες.TryGetValue("Alice", out ηλικίαAlice))
    {
        // Το κλειδί "Alice" βρέθηκε, η ηλικίαAlice περιέχει 30
        // ... χρησιμοποιήστε
    }
    
    int ηλικίαBob;
    if (ηλικίες.TryGetValue("Bob", out ηλικίαBob))
    {
        // Αυτό το μπλοκ δεν θα εκτελεστεί, καθώς το "Bob" δεν υπάρχει
    }
    else
    {
        // Το κλειδί "Bob" δεν βρέθηκε, η ηλικίαBob θα είναι 0 (προεπιλεγμένη τιμή)
    }
    

Επίσης, μπορείτε να χρησιμοποιήσετε τη μέθοδο GetValueOrDefault(κλειδί) (σε .NET Core 2.1+ και .NET Standard 2.1+), η οποία επιστρέφει την τιμή για το συγκεκριμένο κλειδί ή την προεπιλεγμένη τιμή αν το κλειδί δεν βρέθηκε.

// Παράδειγμα χρήσης της GetValueOrDefault
Dictionary<string, int> ηλικίες = new Dictionary<string, int>();
ηλικίες["Alice"] = 30;

int ηλικίαAlice = ηλικίες.GetValueOrDefault("Alice"); // 30
int ηλικίαBob = ηλικίες.GetValueOrDefault("Bob");     // 0 (προεπιλεγμένη τιμή)