Треки
/
C#
C#
/
Вправи
/
Знавець міжнародних дзвінків
Знавець міжнародних дзвінків

Знавець міжнародних дзвінків

Навчальна вправа

Вступ

Словники

Словник - це колекція елементів, де кожен елемент складається з ключа та значення, так що якщо ключ передати методу словника, повертається повʼязане з ним значення. Він відіграє ту саму роль, що й мапи чи асоціативні масиви в інших мовах.

Словник можна створити так:

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

Або

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

// Or

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

Зауважмо, що типи ключа та значення є частиною визначення словника.

Після створення записи можна додавати чи вилучати зі словника за допомогою його вбудованих методів Add і Remove.

Щоб отримати чи оновити значення у словнику, ми звертаємося до словника за індексом, використовуючи ключ:

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"

Перевірити, чи існує значення у словнику, можна так:

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

Перебирання словника перебирає його пари ключ-значення. Словники також мають властивості, які дозволяють перебирати їхні ключі чи значення.

Вказівки

У цій вправі ми будемо писати код, щоб відстежувати міжнародні коди набору за допомогою словника міжнародних кодів набору.

У цьому словнику ключами є цілі числа (код набору), а значеннями - рядки тексту (англ. string) (назва країни).

На нас чекає 9 завдань, повʼязаних зі статичним класом DialingCodes.

1. Створення нового словника

Реалізуйте (статичний) метод DialingCodes.GetEmptyDictionary(), який повертає порожній словник.

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

2. Створення наперед заповненого словника

Існує наперед заповнений словник, який містить такі 3 коди набору: «United States of America» з кодом 1, «Brazil» з кодом 55 та «India» з кодом 91. Реалізуйте (статичний) метод DialingCodes.GetExistingDictionary(), який повертає наперед заповнений словник:

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

3. Додавання країни до порожнього словника

Реалізуйте (статичний) метод DialingCodes.AddCountryToEmptyDictionary(), який створює словник і додає до нього код набору та відповідну назву країни.

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

4. Додавання країни до наявного словника

Реалізуйте (статичний) метод DialingCodes.AddCountryToExistingDictionary(), який додає код набору та відповідну назву країни до непорожнього словника.

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

5. Отримання назви країни за кодом набору

Реалізуйте (статичний) метод DialingCodes.GetCountryNameFromDictionary(), який приймає код набору та повертає відповідну назву країни. Якщо коду набору немає у словнику, то повертається порожній рядок.

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

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

6. Перевірка наявності країни у словнику

Реалізуйте (статичний) метод DialingCodes.CheckCodeExists(), щоб перевірити, чи існує код набору у словнику.

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

7. Оновлення назви країни

Реалізуйте (статичний) метод DialingCodes.UpdateDictionary(), який приймає код набору та замінює відповідну назву країни у словнику на назву країни, передану як параметр. Якщо коду набору немає у словнику, то словник залишається без змін.

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. Видалення країни зі словника

Реалізуйте (статичний) метод DialingCodes.RemoveCountryFromDictionary(), який приймає код набору та видаляє відповідний запис, код набору + назву країни, зі словника.

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

9. Пошук країни з найдовшою назвою

Реалізуйте (статичний) метод DialingCodes.FindLongestCountryName(), який повертає назву країни з найдовшою назвою з тих, що зберігаються у словнику.

DialingCodes.FindLongestCountryName(
  DialingCodes.GetExistingDictionary());
// => "United States of America"
Редагувати через GitHub Посилання відкривається в новому вікні або вкладці
C# Exercism

Час розпочати Знавець міжнародних дзвінків?

Зареєструйтеся на Exercism, щоб вивчати й опановувати C#, а також 62 концепції178 вправ та справжнє наставництво від людей, і все це безкоштовно.