Junior
Πώς παίρνουμε την τιμή με το κλειδί σε ένα λεξικό σε C#;
sobes.tech AI
Απάντηση από AI
Μπορείτε να χρησιμοποιήσετε τον δείκτη με κλειδί ή τη μέθοδο TryGetValue.
-
Δείκτης (
[κλειδί]):- Επιστρέφει την τιμή για το συγκεκριμένο κλειδί.
- Ρίχνει
KeyNotFoundExceptionαν το κλειδί δεν υπάρχει.
// Παράδειγμα χρήσης δείκτη Dictionary<string, int> ηλικίες = new Dictionary<string, int>(); ηλικίες["Alice"] = 30; int ηλικίαAlice = ηλικίες["Alice"]; // Λαμβάνει την τιμή // ηλικίες["Bob"]; // Θα ρίξει KeyNotFoundException αν το "Bob" δεν υπάρχει -
Μέθοδος
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 (προεπιλεγμένη τιμή)