Track
/
C#
C#
/
Esercizi
/
Intenditore di chiamate internazionali
Intenditore di chiamate internazionali

Intenditore di chiamate internazionali

Esercizio di apprendimento

Introduzione

Dizionari

Un dizionario è una collezione di elementi in cui ogni elemento comprende una chiave e un valore, così che se si passa una chiave a un metodo del dizionario, viene restituito il valore associato. Ha lo stesso ruolo che hanno le mappe o gli array associativi in altri linguaggi.

Un dizionario può essere creato come segue:

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

Oppure

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

// Or

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

Nota che i tipi delle chiavi e dei valori fanno parte della definizione del dizionario.

Una volta costruito, è possibile aggiungere o rimuovere voci da un dizionario usando i metodi predefiniti Add e Remove.

Per recuperare o aggiornare i valori in un dizionario, si usa l'indicizzazione tramite una chiave:

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"

Puoi verificare se un valore esiste nel dizionario con:

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

Quando si enumera un dizionario, si enumerano le sue coppie chiave/valore. I dizionari hanno anche proprietà che permettono di enumerare le chiavi o i valori.

Istruzioni

In questo esercizio scriverai del codice per tenere traccia dei prefissi telefonici internazionali tramite un dizionario dei prefissi telefonici internazionali.

Il dizionario usa un numero intero per le chiavi (il prefisso telefonico) e una stringa (il nome del paese) per i valori.

Ci sono 9 attività che coinvolgono la classe statica DialingCodes.

1. Crea un nuovo dizionario

Implementa il metodo (statico) DialingCodes.GetEmptyDictionary() che restituisce un dizionario vuoto.

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

2. Crea un dizionario pre-popolato

Esiste un dizionario pre-popolato che contiene i seguenti 3 prefissi telefonici: "United States of America", che ha il prefisso 1, "Brazil", che ha il prefisso 55, e "India", che ha il prefisso 91. Implementa il metodo (statico) DialingCodes.GetExistingDictionary() in modo che restituisca il dizionario pre-popolato:

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

3. Aggiungi un paese a un dizionario vuoto

Implementa il metodo (statico) DialingCodes.AddCountryToEmptyDictionary() che crea un dizionario e vi aggiunge un prefisso telefonico e il nome del paese associato.

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

4. Aggiungi un paese a un dizionario esistente

Implementa il metodo (statico) DialingCodes.AddCountryToExistingDictionary() che aggiunge un prefisso telefonico e il nome del paese associato a un dizionario non vuoto.

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

5. Trova il nome del paese corrispondente a un prefisso telefonico

Implementa il metodo (statico) DialingCodes.GetCountryNameFromDictionary() che prende un prefisso telefonico e restituisce il nome del paese corrispondente. Se il prefisso telefonico non è contenuto nel dizionario, viene restituita una stringa vuota.

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

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

6. Verifica che un paese esista nel dizionario

Implementa il metodo (statico) DialingCodes.CheckCodeExists() per verificare se un prefisso telefonico esiste nel dizionario.

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

7. Aggiorna il nome di un paese

Implementa il metodo (statico) DialingCodes.UpdateDictionary() che prende un prefisso telefonico e sostituisce il nome del paese corrispondente nel dizionario con il nome del paese passato come parametro. Se il prefisso telefonico non esiste nel dizionario, il dizionario rimane invariato.

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. Rimuovi un paese dal dizionario

Implementa il metodo (statico) DialingCodes.RemoveCountryFromDictionary() che prende un prefisso telefonico e rimuove dal dizionario la voce corrispondente, prefisso telefonico + nome del paese.

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

9. Trova il paese con il nome più lungo

Implementa il metodo (statico) DialingCodes.FindLongestCountryName() che restituisce il nome del paese con il nome più lungo memorizzato nel dizionario.

DialingCodes.FindLongestCountryName(
  DialingCodes.GetExistingDictionary());
// => "United States of America"
Modifica tramite GitHub Il link si apre in una nuova finestra o scheda
C# Exercism

Vuoi iniziare Intenditore di chiamate internazionali?

Iscriviti a Exercism per imparare e padroneggiare C# con 62 concetti178 esercizi e il mentoring di persone reali, tutto gratis.