المسارات
/
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

عند التعداد على قاموس، سيتم التعداد على أزواج المفتاح/القيمة الخاصة به. وللقواميس أيضًا خصائص تُتيح التعداد على مفاتيحه أو قيمه.

التعليمات

في هذا التمرين ستكتب كودًا لتتبّع رموز الاتصال الدولية عبر قاموس لرموز الاتصال الدولية.

يستخدم القاموس عددًا صحيحًا لمفاتيحه (رمز الاتصال) وسلسلة نصية (اسم الدولة) لقيمه.

لديك 9 مهام تتعلق بالصنف static المسمّى DialingCodes.

1. أنشئ قاموسًا جديدًا

نفّذ الطريقة (static) DialingCodes.GetEmptyDictionary() التي تُرجع قاموسًا فارغًا.

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

2. أنشئ قاموسًا مُعبّأ مسبقًا

يوجد قاموس مُعبّأ مسبقًا يحتوي على رموز الاتصال الثلاثة التالية: "United States of America" ورمزها 1، و"Brazil" ورمزها 55، و"India" ورمزها 91. نفّذ الطريقة (static) DialingCodes.GetExistingDictionary() لتُرجع القاموس المُعبّأ مسبقًا:

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

3. أضف دولة إلى قاموس فارغ

نفّذ الطريقة (static) DialingCodes.AddCountryToEmptyDictionary() التي تُنشئ قاموسًا وتضيف إليه رمز اتصال واسم الدولة المرتبط به.

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

4. أضف دولة إلى قاموس موجود

نفّذ الطريقة (static) DialingCodes.AddCountryToExistingDictionary() التي تضيف رمز اتصال واسم الدولة المرتبط به إلى قاموس غير فارغ.

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

5. احصل على اسم الدولة المطابق لرمز اتصال

نفّذ الطريقة (static) DialingCodes.GetCountryNameFromDictionary() التي تأخذ رمز اتصال وتُرجع اسم الدولة المقابل له. إذا لم يكن رمز الاتصال موجودًا في القاموس، فستُرجع سلسلة نصية فارغة.

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

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

6. تحقق من وجود دولة في القاموس

نفّذ الطريقة (static) DialingCodes.CheckCodeExists() للتحقق مما إذا كان رمز الاتصال موجودًا في القاموس.

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

7. حدّث اسم دولة

نفّذ الطريقة (static) 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. أزل دولة من القاموس

نفّذ الطريقة (static) DialingCodes.RemoveCountryFromDictionary() التي تأخذ رمز اتصال وتزيل السجل المقابل له، أي رمز الاتصال واسم الدولة، من القاموس.

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

9. ابحث عن الدولة ذات الاسم الأطول

نفّذ الطريقة (static) DialingCodes.FindLongestCountryName() التي ستُرجع اسم الدولة ذات الاسم الأطول المخزّن في القاموس.

DialingCodes.FindLongestCountryName(
  DialingCodes.GetExistingDictionary());
// => "United States of America"
تعديل عبر GitHub يفتح الرابط في نافذة أو علامة تبويب جديدة
C# Exercism

مستعد لبدء خبير المكالمات الدولية؟

سجّل في Exercism لتتعلّم وتتقن C# عبر 62 مفهومًا178 تمرينًا، وإرشاد بشري حقيقي، وكل ذلك مجانًا.