تعريف المجموعة يتضمن عادةً عنصرًا نائبًا بين قوسين زاويين، ويكون T غالبًا بحكم الاصطلاح. وتُسمى هذه المجموعة نوعًا عامًا. وهذا يسمح لمستخدم المجموعة بتحديد نوع العناصر التي ستُخزَّن فيها. في مثال الكود أدناه نُنشئ قائمة من السلاسل النصية.
القوائم في C# هي مجموعات من القيم الأولية أو من نسخ البنيات أو الأصناف. وهي مُنفَّذة في مكتبة الفئات الأساسية باسم List<T>، حيث T هو نوع العنصر في القائمة. وتوفّر API مجموعة غنية من الطرق لإنشاء القوائم والتعامل معها.
يمكن إضافة العناصر إلى القوائم وإزالتها منها. وهي تنمو وتتقلص حسب الحاجة.
var listOfStrings = new List<string>();
في هذا التمرين ستكتب كودًا لتتبّع مصفوفة من لغات البرمجة التي تريد تعلّمها على Exercism.
لديك تسع مهام، وكلها ستتضمّن التعامل مع المصفوفات.
لتتبّع اللغات التي تريد تعلّمها، ستحتاج إلى إنشاء مصفوفة جديدة.
نفّذ الطريقة static المسماة Languages.NewList() التي تُرجع مصفوفة جديدة فارغة.
Languages.NewList()
// => empty list
حاليًا، لديك ورقة مكتوب عليها اللغات التي تريد تعلّمها: C# وClojure وElm.
من فضلك نفّذ الطريقة static المسماة Languages.GetExistingLanguages() لتُرجع المصفوفة.
Languages.GetExistingLanguages();
// => {"C#", "Clojure", "Elm"}
بينما تستكشف Exercism وتجد لغات أكثر إثارة للاهتمام، تريد إضافتها إلى مصفوفتك.
نفّذ الدالة static المسماة Languages.AddLanguage() لإضافة لغة جديدة إلى نهاية مصفوفتك.
Languages.AddLanguage(Languages.GetExistingLanguages(), "VBA");
// => {"C#", "Clojure", "Elm", "VBA"}
عدّ اللغات واحدة تلو الأخرى أمر غير مريح.
نفّذ الطريقة static المسماة Languages.CountLanguages() لعدّ عدد اللغات في مصفوفتك.
Languages.CountLanguages(Languages.GetExistingLanguages())
// => 3
نفّذ الطريقة static المسماة Languages.HasLanguage() للتحقق مما إذا كانت لغة ما موجودة.
Languages.HasLanguage(Languages.GetExistingLanguages(), "Elm")
// => true
في مرحلة ما، تدرك أن مصفوفتك مرتّبة بالعكس في الواقع!
نفّذ الطريقة static المسماة Languages.ReverseList() لعكس مصفوفتك.
Languages.ReverseList(Languages.GetExistingLanguages())
// => {"Elm", "Clojure", "C#"}
مع أنك تحب جميع اللغات، فإن لـ C# مكانة خاصة في قلبك. ولهذا، تتحمّس كثيرًا لمصفوفة من اللغات إذا تحقق أحد الشرطين التاليين:
نفّذ الطريقة static المسماة Languages.IsExciting() للتحقق مما إذا كانت مصفوفة اللغات مثيرة:
Languages.IsExciting(Languages.GetExistingLanguages())
// => true
من فضلك نفّذ الطريقة static المسماة Languages.RemoveLanguage() لإزالة لغة محددة من المصفوفة.
Languages.RemoveLanguage(Languages.GetExistingLanguages(), "Clojure")
// => { "C#", "Elm" }
من فضلك نفّذ الطريقة static المسماة Languages.IsUnique() للتحقق مما إذا كانت أي من اللغات متكررة في المصفوفة.
المصفوفة (أي المعامل) مضمون ألّا تكون فارغة عند استدعاء هذه الطريقة، ولا يهم ما إذا تم تعديل المصفوفة.
Languages.IsUnique(Languages.GetExistingLanguages())
// => true
سجّل في Exercism لتتعلّم وتتقن C# عبر 62 مفهومًا178 تمرينًا، وإرشاد بشري حقيقي، وكل ذلك مجانًا.