Διαδρομές
/
C#
C#
/
Ασκήσεις
/
Γνώστης διεθνών κλήσεων
Γνώστης διεθνών κλήσεων

Γνώστης διεθνών κλήσεων

Άσκηση εκμάθησης

Εισαγωγή

Λεξικά

Ένα λεξικό είναι μια συλλογή στοιχείων, όπου κάθε στοιχείο αποτελείται από ένα κλειδί και μια τιμή, με τέτοιον τρόπο ώστε αν περάσεις ένα κλειδί σε μια μέθοδο του λεξικού, να επιστρέφεται η τιμή που του αντιστοιχεί. Έχει τον ίδιο ρόλο με τους χάρτες ή τους συσχετιστικούς πίνακες σε άλλες γλώσσες.

Ένα λεξικό μπορεί να δημιουργηθεί ως εξής:

new Dictionary<int, string>();
// Empty dictionary

Ή

new Dictionary<int, string>
{
    [1] = "One",
    [2] = "Two"
};

// Or

new Dictionary<int, string>
{
    {1, "One"},
    {2, "Two"}
};
// 1 => "One", 2 => "Two"

Σημείωσε ότι οι τύποι του κλειδιού και της τιμής αποτελούν μέρος του ορισμού του λεξικού.

Μόλις δημιουργηθεί ένα λεξικό, μπορείς να προσθέσεις ή να αφαιρέσεις καταχωρήσεις χρησιμοποιώντας τις ενσωματωμένες μεθόδους Add και Remove.

Η ανάκτηση ή η ενημέρωση τιμών σε ένα λεξικό γίνεται με πρόσβαση στο λεξικό μέσω κλειδιού:

var numbers = new Dictionary<int, string>
{
   {1, "One"},
   {2, "Two"}
};

// Set the value of the element with key 2 to "Deux"
numbers[2] = "Deux";

// Get the value of the element with key 2
numbers[2];
// => "Deux"

Μπορείς να ελέγξεις αν υπάρχει μια τιμή στο λεξικό με:

var dict = new Dictionary<string, string>{/*...*/};
dict.ContainsKey("some key that exists");
// => true

Η απαρίθμηση ενός λεξικού απαριθμεί τα ζεύγη κλειδιού/τιμής του. Τα λεξικά έχουν επίσης ιδιότητες που σου επιτρέπουν να απαριθμήσεις τα κλειδιά ή τις τιμές τους.

Οδηγίες

Σε αυτήν την άσκηση θα γράψεις κώδικα για να παρακολουθείς κωδικούς διεθνούς κλήσης μέσω ενός λεξικού κωδικών κλήσης.

Το λεξικό χρησιμοποιεί έναν ακέραιο για τα κλειδιά του (τον κωδικό κλήσης) και μια συμβολοσειρά (όνομα χώρας) για τις τιμές του.

Έχεις 9 εργασίες που αφορούν τη στατική κλάση DialingCodes.

1. Δημιούργησε ένα νέο λεξικό

Υλοποίησε τη (στατική) μέθοδο DialingCodes.GetEmptyDictionary() που επιστρέφει ένα κενό λεξικό.

DialingCodes.GetEmptyDictionary();
// => empty dictionary

2. Δημιούργησε ένα προσυμπληρωμένο λεξικό

Υπάρχει ένα προσυμπληρωμένο λεξικό που περιέχει τους εξής 3 κωδικούς κλήσης: "United States of America" με κωδικό 1, "Brazil" με κωδικό 55 και "India" με κωδικό 91. Υλοποίησε τη (στατική) μέθοδο DialingCodes.GetExistingDictionary() ώστε να επιστρέφει το προσυμπληρωμένο λεξικό:

DialingCodes.GetExistingDictionary();
// => 1 => "United States of America", 55 => "Brazil", 91 => "India"

3. Πρόσθεσε μια χώρα σε ένα κενό λεξικό

Υλοποίησε τη (στατική) μέθοδο DialingCodes.AddCountryToEmptyDictionary() που δημιουργεί ένα λεξικό και προσθέτει σε αυτό έναν κωδικό κλήσης και το σχετικό όνομα χώρας.

DialingCodes.AddCountryToEmptyDictionary(44, "United Kingdom");
// => 44 => "United Kingdom"

4. Πρόσθεσε μια χώρα σε ένα υπάρχον λεξικό

Υλοποίησε τη (στατική) μέθοδο DialingCodes.AddCountryToExistingDictionary() που προσθέτει έναν κωδικό κλήσης και το σχετικό όνομα χώρας σε ένα μη κενό λεξικό.

DialingCodes.AddCountryToExistingDictionary(DialingCodes.GetExistingDictionary(),
  44, "United Kingdom");
// => 1 => "United States of America", 44 => "United Kingdom", 55 => "Brazil", 91 => "India"

5. Βρες το όνομα χώρας που αντιστοιχεί σε έναν κωδικό κλήσης

Υλοποίησε τη (στατική) μέθοδο DialingCodes.GetCountryNameFromDictionary() που παίρνει έναν κωδικό κλήσης και επιστρέφει το αντίστοιχο όνομα χώρας. Αν ο κωδικός κλήσης δεν περιέχεται στο λεξικό, τότε επιστρέφεται μια κενή συμβολοσειρά.

DialingCodes.GetCountryNameFromDictionary(
  DialingCodes.GetExistingDictionary(), 55);
// => "Brazil"

DialingCodes.GetCountryNameFromDictionary(
  DialingCodes.GetExistingDictionary(), 999);
// => string.Empty

6. Έλεγξε ότι μια χώρα υπάρχει στο λεξικό

Υλοποίησε τη (στατική) μέθοδο DialingCodes.CheckCodeExists() για να ελέγξεις αν ένας κωδικός κλήσης υπάρχει στο λεξικό.

DialingCodes.CheckCodeExists(DialingCodes.GetExistingDictionary(), 55);
// => true

7. Ενημέρωσε το όνομα μιας χώρας

Υλοποίησε τη (στατική) μέθοδο DialingCodes.UpdateDictionary() που παίρνει έναν κωδικό κλήσης και αντικαθιστά το αντίστοιχο όνομα χώρας στο λεξικό με το όνομα χώρας που περνιέται ως παράμετρος. Αν ο κωδικός κλήσης δεν υπάρχει στο λεξικό, τότε το λεξικό παραμένει ως έχει.

DialingCodes.UpdateDictionary(
  DialingCodes.GetExistingDictionary(), 1, "Les États-Unis");
// => 1 => "Les États-Unis", 55 => "Brazil", 91 => "India"

DialingCodes.UpdateDictionary(
  DialingCodes.GetExistingDictionary(), 999, "Newlands");
// 1 => "United States of America", 55 => "Brazil", 91 => "India"

8. Αφαίρεσε μια χώρα από το λεξικό

Υλοποίησε τη (στατική) μέθοδο DialingCodes.RemoveCountryFromDictionary() που παίρνει έναν κωδικό κλήσης και αφαιρεί την αντίστοιχη καταγραφή, κωδικό κλήσης + όνομα χώρας, από το λεξικό.

DialingCodes.RemoveCountryFromDictionary(
  DialingCodes.GetExistingDictionary(), 91);
// => 1 => "United States of America", 55 => "Brazil"

9. Βρες τη χώρα με το μεγαλύτερο όνομα

Υλοποίησε τη (στατική) μέθοδο DialingCodes.FindLongestCountryName() που θα επιστρέψει το όνομα της χώρας με το μεγαλύτερο όνομα από αυτές που είναι αποθηκευμένες στο λεξικό.

DialingCodes.FindLongestCountryName(
  DialingCodes.GetExistingDictionary());
// => "United States of America"
Επεξεργασία μέσω GitHub Ο σύνδεσμος ανοίγει σε νέο παράθυρο ή καρτέλα
C# Exercism

Έτοιμος να ξεκινήσεις την άσκηση Γνώστης διεθνών κλήσεων;

Γράψου στο Exercism για να μάθεις και να κατακτήσεις C# με 62 έννοιες178 ασκήσεις και πραγματική καθοδήγηση από ανθρώπους, όλα δωρεάν.