Tracks
/
C#
C#
/
Ejercicios
/
Especialista en llamadas internacionales
Especialista en llamadas internacionales

Especialista en llamadas internacionales

Ejercicio de aprendizaje

Introducción

Diccionarios

Un diccionario es una colección de elementos donde cada elemento se compone de una clave y un valor, de manera que si se pasa una clave a un método del diccionario, se devuelve el valor asociado a ella. Cumple el mismo papel que los mapas o los arrays asociativos en otros lenguajes.

Un diccionario se puede crear así:

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

O

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

// Or

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

Ten en cuenta que los tipos de la clave y del valor forman parte de la definición del diccionario.

Una vez construido, puedes agregar o eliminar entradas de un diccionario con sus métodos integrados Add y Remove.

Para obtener o actualizar valores en un diccionario se indexa el diccionario con una clave:

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"

Puedes comprobar si un valor existe en el diccionario con:

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

Recorrer un diccionario enumera sus pares clave/valor. Los diccionarios también tienen propiedades que permiten recorrer sus claves o sus valores.

Instrucciones

En este ejercicio vas a escribir código para llevar un registro de los códigos de marcación internacionales mediante un diccionario de códigos de marcación internacionales.

El diccionario usa un número entero para sus claves (el código de marcación) y un string (nombre del país) para sus valores.

Tienes 9 tareas que involucran la clase estática DialingCodes.

1. Crea un diccionario nuevo

Implementa el método (estático) DialingCodes.GetEmptyDictionary() que devuelve un diccionario vacío.

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

2. Crea un diccionario precargado

Existe un diccionario precargado que contiene los siguientes 3 códigos de marcación: «United States of America», con un código de 1; «Brazil», con un código de 55; y «India», con un código de 91. Implementa el método (estático) DialingCodes.GetExistingDictionary() para devolver el diccionario precargado:

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

3. Agrega un país a un diccionario vacío

Implementa el método (estático) DialingCodes.AddCountryToEmptyDictionary() que crea un diccionario y le agrega un código de marcación y el nombre del país asociado.

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

4. Agrega un país a un diccionario existente

Implementa el método (estático) DialingCodes.AddCountryToExistingDictionary() que agrega un código de marcación y el nombre del país asociado a un diccionario que no está vacío.

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

5. Obtén el nombre del país que corresponde a un código de marcación

Implementa el método (estático) DialingCodes.GetCountryNameFromDictionary() que recibe un código de marcación y devuelve el nombre del país correspondiente. Si el código de marcación no está en el diccionario, se devuelve un string vacío.

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

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

6. Verifica que un país existe en el diccionario

Implementa el método (estático) DialingCodes.CheckCodeExists() para verificar si un código de marcación existe en el diccionario.

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

7. Actualiza el nombre de un país

Implementa el método (estático) DialingCodes.UpdateDictionary() que recibe un código de marcación y reemplaza el nombre del país correspondiente en el diccionario con el nombre del país que se pasa como parámetro. Si el código de marcación no existe en el diccionario, el diccionario queda sin cambios.

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. Elimina un país del diccionario

Implementa el método (estático) DialingCodes.RemoveCountryFromDictionary() que recibe un código de marcación y elimina del diccionario el registro correspondiente, código de marcación + nombre del país.

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

9. Encuentra el país con el nombre más largo

Implementa el método (estático) DialingCodes.FindLongestCountryName() que devolverá el nombre del país con el nombre más largo almacenado en el diccionario.

DialingCodes.FindLongestCountryName(
  DialingCodes.GetExistingDictionary());
// => "United States of America"
Editar en GitHub El enlace se abre en una ventana o una pestaña nuevas
C# Exercism

¿Todo listo para empezar Especialista en llamadas internacionales?

Regístrate en Exercism para aprender y dominar C# con 62 conceptos178 ejercicios y mentoría humana real, todo gratis.