Rutas
/
C#
C#
/
Ejercicios
/
Experto en llamadas internacionales
Experto en llamadas internacionales

Experto en llamadas internacionales

Ejercicio de aprendizaje

Introducción

Diccionarios

Un diccionario es una colección de elementos en la que cada elemento consta de una clave y un valor, de modo que si se pasa una clave a un método del diccionario, se devuelve el valor asociado. Tiene el mismo papel que cumplen 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"

Fíjate en que los tipos de la clave y del valor forman parte de la definición del diccionario.

Una vez construido, se pueden añadir o eliminar entradas de un diccionario con sus métodos integrados Add y Remove.

Para obtener o actualizar valores de 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 existe un valor en el diccionario con:

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

Enumerar un diccionario recorre sus pares clave/valor. Los diccionarios también tienen propiedades que permiten enumerar 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 internacional.

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

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

1. Crear un diccionario nuevo

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

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

2. Crear un diccionario ya rellenado

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

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

3. Añadir un país a un diccionario vacío

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

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

4. Añadir un país a un diccionario existente

Implementa el método (estático) DialingCodes.AddCountryToExistingDictionary(), que añade 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. Obtener 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. Comprobar que un país existe en el diccionario

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

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

7. Actualizar el nombre de un país

Implementa el método (estático) DialingCodes.UpdateDictionary(), que recibe un código de marcación y sustituye el nombre del país correspondiente en el diccionario por el nombre del país que se pasa como parámetro. Si el código de marcación no existe en el diccionario, este permanece 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. Eliminar 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, es decir, el código de marcación y el nombre del país.

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

9. Encontrar 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 pestaña nueva
C# Exercism

¿Listo para empezar Experto en llamadas internacionales?

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