Kurzusok
/
C#
C#
/
Feladatok
/
Nemzetközi hívások szakértője
Nemzetközi hívások szakértője

Nemzetközi hívások szakértője

Tanulófeladat

Bevezetés

Szótárak

A szótár olyan elemek gyűjteménye, amelyben minden elem egy kulcsból és egy értékből áll, úgy, hogy ha egy kulcsot átadunk a szótár valamelyik metódusának, akkor a hozzá tartozó értéket adja vissza. Ugyanaz a szerepe, mint más nyelvekben a map-eknek vagy az asszociatív tömböknek.

A szótár a következőképpen hozható létre:

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

Vagy

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

// Or

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

Figyeld meg, hogy a kulcs- és értéktípusok a szótár definíciójának részét képezik.

Létrehozás után a szótár bejegyzéseit hozzáadhatod vagy eltávolíthatod a beépített Add és Remove metódusaival.

A szótárban lévő értékek lekérése vagy frissítése úgy történik, hogy a szótárt egy kulccsal indexeljük:

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"

A következővel tesztelheted, hogy létezik-e egy kulcs a szótárban:

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

A szótár bejárása a kulcs/érték párjain megy végig. A szótáraknak vannak olyan tulajdonságaik is, amelyekkel a kulcsain vagy az értékein is végigmehetsz.

Utasítások

Ebben a feladatban olyan kódot írsz, amely egy nemzetközi hívószám-szótár segítségével tartja nyilván a nemzetközi hívószámokat.

A szótár kulcsai egész számok (a hívószám), az értékei pedig stringek (az ország neve).

9 részfeladat vár rád, amelyek a DialingCodes statikus osztályhoz kapcsolódnak.

1. Hozz létre egy új szótárat

Valósítsd meg a (statikus) DialingCodes.GetEmptyDictionary() metódust, amely egy üres szótárat ad vissza.

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

2. Hozz létre egy előre feltöltött szótárat

Létezik egy előre feltöltött szótár, amely a következő 3 hívószámot tartalmazza: „United States of America”, amelynek a hívószáma 1, „Brazil”, amelynek a hívószáma 55, és „India”, amelynek a hívószáma 91. Valósítsd meg a (statikus) DialingCodes.GetExistingDictionary() metódust, amely visszaadja az előre feltöltött szótárat:

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

3. Adj hozzá egy országot egy üres szótárhoz

Valósítsd meg a (statikus) DialingCodes.AddCountryToEmptyDictionary() metódust, amely létrehoz egy szótárat, és hozzáad egy hívószámot meg a hozzá tartozó országnevet.

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

4. Adj hozzá egy országot egy létező szótárhoz

Valósítsd meg a (statikus) DialingCodes.AddCountryToExistingDictionary() metódust, amely hozzáad egy hívószámot és a hozzá tartozó országnevet egy nem üres szótárhoz.

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

5. Keresd meg a hívószámhoz tartozó országnevet

Valósítsd meg a (statikus) DialingCodes.GetCountryNameFromDictionary() metódust, amely egy hívószámot kap, és visszaadja a hozzá tartozó országnevet. Ha a hívószám nem szerepel a szótárban, akkor üres stringet ad vissza.

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

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

6. Ellenőrizd, hogy egy ország szerepel-e a szótárban

Valósítsd meg a (statikus) DialingCodes.CheckCodeExists() metódust, amely ellenőrzi, hogy egy hívószám szerepel-e a szótárban.

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

7. Frissítsd egy ország nevét

Valósítsd meg a (statikus) DialingCodes.UpdateDictionary() metódust, amely egy hívószámot kap, és a szótárban a hozzá tartozó országnevet lecseréli a paraméterként átadott országnévre. Ha a hívószám nem szerepel a szótárban, akkor a szótár változatlan marad.

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. Távolíts el egy országot a szótárból

Valósítsd meg a (statikus) DialingCodes.RemoveCountryFromDictionary() metódust, amely egy hívószámot kap, és eltávolítja a szótárból a hozzá tartozó bejegyzést (hívószám + országnév).

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

9. Keresd meg a leghosszabb nevű országot

Valósítsd meg a (statikus) DialingCodes.FindLongestCountryName() metódust, amely visszaadja a szótárban tárolt leghosszabb nevű ország nevét.

DialingCodes.FindLongestCountryName(
  DialingCodes.GetExistingDictionary());
// => "United States of America"
Szerkesztés GitHubon A hivatkozás új ablakban vagy lapon nyílik meg
C# Exercism

Készen állsz elkezdeni a(z) Nemzetközi hívások szakértője feladatot?

Iratkozz fel az Exercism-re, hogy megtanuld és elsajátítsd a(z) C# nyelvet 62 fogalom178 feladat segítségével, valódi emberi mentorálással, mindez ingyen.