Trilhas
/
C#
C#
/
Exercícios
/
Conhecedor de ligações internacionais
Conhecedor de ligações internacionais

Conhecedor de ligações internacionais

Exercício de aprendizagem

Introdução

Dicionários

Um dicionário é uma coleção de elementos em que cada elemento é composto por uma chave e um valor, de modo que, se uma chave for passada a um método do dicionário, o valor associado a ela é retornado. Ele tem o mesmo papel que mapas ou arrays associativos têm em outras linguagens.

Um dicionário pode ser criado da seguinte forma:

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

Ou

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

// Or

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

Repare que os tipos de chave e valor fazem parte da definição do dicionário.

Depois de construído, entradas podem ser adicionadas ou removidas de um dicionário usando seus métodos internos Add e Remove.

A recuperação ou atualização de valores em um dicionário é feita indexando o dicionário com uma chave:

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"

Você pode testar se uma chave existe no dicionário com:

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

Iterar sobre um dicionário itera sobre seus pares de chave/valor. Os dicionários também têm propriedades que permitem iterar sobre as chaves ou os valores.

Instruções

Neste exercício, você vai escrever código para acompanhar códigos de discagem internacional por meio de um dicionário de códigos de discagem internacional.

O dicionário usa um número inteiro como chave (o código de discagem) e uma string (nome do país) como valor.

Você tem 9 tarefas que envolvem a classe estática DialingCodes.

1. Crie um novo dicionário

Implemente o método (estático) DialingCodes.GetEmptyDictionary() que retorna um dicionário vazio.

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

2. Crie um dicionário pré-preenchido

Existe um dicionário pré-preenchido que contém os seguintes 3 códigos de discagem: "United States of America", com o código 1, "Brazil", com o código 55, e "India", com o código 91. Implemente o método (estático) DialingCodes.GetExistingDictionary() para retornar o dicionário pré-preenchido:

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

3. Adicione um país a um dicionário vazio

Implemente o método (estático) DialingCodes.AddCountryToEmptyDictionary() que cria um dicionário e adiciona a ele um código de discagem e o nome do país associado.

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

4. Adicione um país a um dicionário existente

Implemente o método (estático) DialingCodes.AddCountryToExistingDictionary() que adiciona um código de discagem e o nome do país associado a um dicionário não vazio.

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

5. Obtenha o nome do país correspondente a um código de discagem

Implemente o método (estático) DialingCodes.GetCountryNameFromDictionary() que recebe um código de discagem e retorna o nome do país correspondente. Se o código de discagem não estiver no dicionário, uma string vazia é retornada.

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

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

6. Verifique se um país existe no dicionário

Implemente o método (estático) DialingCodes.CheckCodeExists() para verificar se um código de discagem existe no dicionário.

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

7. Atualize o nome de um país

Implemente o método (estático) DialingCodes.UpdateDictionary() que recebe um código de discagem e substitui o nome do país correspondente no dicionário pelo nome do país passado como parâmetro. Se o código de discagem não existir no dicionário, o dicionário permanece inalterado.

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. Remova um país do dicionário

Implemente o método (estático) DialingCodes.RemoveCountryFromDictionary() que recebe um código de discagem e remove do dicionário o registro correspondente, código de discagem + nome do país.

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

9. Encontre o país com o nome mais longo

Implemente o método (estático) DialingCodes.FindLongestCountryName() que retorna o nome do país com o nome mais longo armazenado no dicionário.

DialingCodes.FindLongestCountryName(
  DialingCodes.GetExistingDictionary());
// => "United States of America"
Editar via GitHub O link abre em uma nova janela ou aba
C# Exercism

Tudo pronto para começar Conhecedor de ligações internacionais?

Crie sua conta no Exercism para aprender e dominar C# com 62 conceitos178 exercícios e mentoria humana de verdade, tudo de graça.