Tracks
/
C#
C#
/
Übungen
/
Experte für internationale Anrufe
Experte für internationale Anrufe

Experte für internationale Anrufe

Lernübung

Einführung

Wörterbücher

Ein Wörterbuch ist eine Sammlung von Elementen, wobei jedes Element aus einem Schlüssel und einem Wert besteht. Wenn man den Schlüssel an eine Methode des Wörterbuchs übergibt, gibt diese den zugehörigen Wert zurück. Es hat dieselbe Rolle wie Maps oder assoziative Arrays in anderen Sprachen.

Ein Wörterbuch kannst du so erstellen:

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

Oder

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

// Or

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

Beachte, dass die Typen von Schlüssel und Wert Teil der Definition des Wörterbuchs sind.

Nachdem es erstellt wurde, kannst du mit den eingebauten Methoden Add und Remove Einträge zu einem Wörterbuch hinzufügen oder daraus entfernen.

Um Werte in einem Wörterbuch abzurufen oder zu aktualisieren, greifst du über einen Schlüssel auf das Wörterbuch zu:

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"

Du kannst mit folgendem Code prüfen, ob ein Wert im Wörterbuch existiert:

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

Wenn du über ein Wörterbuch iterierst, iterierst du über seine Schlüssel-Wert-Paare. Wörterbücher haben außerdem Eigenschaften, mit denen du über seine Schlüssel oder Werte iterieren kannst.

Anleitung

In dieser Übung schreibst du Code, um internationale Vorwahlen mithilfe eines Vorwahlwörterbuchs zu verwalten.

Das Wörterbuch verwendet eine Ganzzahl als Schlüssel (die Vorwahl) und einen String (den Ländernamen) als Wert.

Es erwarten dich 9 Aufgaben, in denen es um die statische Klasse DialingCodes geht.

1. Erstelle ein neues Wörterbuch

Implementiere die (statische) Methode DialingCodes.GetEmptyDictionary(), die ein leeres Wörterbuch zurückgibt.

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

2. Erstelle ein vorausgefülltes Wörterbuch

Es gibt ein vorausgefülltes Wörterbuch, das die folgenden 3 Vorwahlen enthält: „United States of America“ mit der Vorwahl 1, „Brazil“ mit der Vorwahl 55 und „India“ mit der Vorwahl 91. Implementiere die (statische) Methode DialingCodes.GetExistingDictionary(), die das vorausgefüllte Wörterbuch zurückgibt:

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

3. Füge ein Land zu einem leeren Wörterbuch hinzu

Implementiere die (statische) Methode DialingCodes.AddCountryToEmptyDictionary(), die ein Wörterbuch erstellt und ihm eine Vorwahl und den zugehörigen Ländernamen hinzufügt.

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

4. Füge ein Land zu einem vorhandenen Wörterbuch hinzu

Implementiere die (statische) Methode DialingCodes.AddCountryToExistingDictionary(), die einem nicht leeren Wörterbuch eine Vorwahl und den zugehörigen Ländernamen hinzufügt.

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

5. Ermittle den Ländernamen zu einer Vorwahl

Implementiere die (statische) Methode DialingCodes.GetCountryNameFromDictionary(), die eine Vorwahl entgegennimmt und den zugehörigen Ländernamen zurückgibt. Ist die Vorwahl nicht im Wörterbuch enthalten, wird ein leerer String zurückgegeben.

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

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

6. Prüfe, ob ein Land im Wörterbuch vorhanden ist

Implementiere die (statische) Methode DialingCodes.CheckCodeExists(), die prüft, ob eine Vorwahl im Wörterbuch vorhanden ist.

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

7. Aktualisiere einen Ländernamen

Implementiere die (statische) Methode DialingCodes.UpdateDictionary(), die eine Vorwahl entgegennimmt und den zugehörigen Ländernamen im Wörterbuch durch den als Parameter übergebenen Ländernamen ersetzt. Existiert die Vorwahl nicht im Wörterbuch, bleibt das Wörterbuch unverändert.

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. Entferne ein Land aus dem Wörterbuch

Implementiere die (statische) Methode DialingCodes.RemoveCountryFromDictionary(), die eine Vorwahl entgegennimmt und den zugehörigen Eintrag, also Vorwahl plus Ländernamen, aus dem Wörterbuch entfernt.

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

9. Finde das Land mit dem längsten Namen

Implementiere die (statische) Methode DialingCodes.FindLongestCountryName(), die den Namen des Landes mit dem längsten im Wörterbuch gespeicherten Namen zurückgibt.

DialingCodes.FindLongestCountryName(
  DialingCodes.GetExistingDictionary());
// => "United States of America"
Über GitHub bearbeiten Der Link öffnet sich in einem neuen Fenster oder Tab
C# Exercism

Bereit, mit Experte für internationale Anrufe zu starten?

Melde dich bei Exercism an, um C# mit 62 Konzepte178 Übungen und echtem menschlichen Mentoring zu lernen und zu meistern, alles kostenlos.