Визначення колекції зазвичай містить заповнювач у кутових дужках (<>), часто T за домовленістю. Таку колекцію називають узагальненим типом. Це дає змогу користувачеві колекції вказати, який тип елементів зберігати в колекції. У наведеному нижче прикладі коду ми створюємо примірник масиву рядків тексту (англ. string).
Масиви в C# є колекціями примітивних значень або примірників структур чи класів. Вони реалізовані в базовій бібліотеці класів як List<T>, де T позначає тип елемента в масиві. API надає багатий набір методів для створення та роботи з масивами.
Елементи можна додавати до масивів і видаляти з них. Вони збільшуються та зменшуються за потреби.
var listOfStrings = new List<string>();
У цій вправі ми писатимемо код, щоб відстежувати масив мов програмування, які хочемо вивчити на Exercism.
На нас чекає девʼять завдань, і всі вони повʼязані з масивами.
Щоб відстежувати мови, які ми хочемо вивчити, потрібно створити новий масив.
Реалізуйте статичний метод Languages.NewList(), який повертає новий порожній масив.
Languages.NewList()
// => empty list
Наразі в нас є аркуш паперу зі списком мов, які ми хочемо вивчити: C#, Clojure та Elm.
Будь ласка, реалізуйте статичний метод Languages.GetExistingLanguages(), який повертає цей масив.
Languages.GetExistingLanguages();
// => {"C#", "Clojure", "Elm"}
Досліджуючи Exercism і знаходячи цікавіші мови, ми хочемо додати їх до свого масиву.
Реалізуйте статичну функцію Languages.AddLanguage(), щоб додавати нову мову в кінець масиву.
Languages.AddLanguage(Languages.GetExistingLanguages(), "VBA");
// => {"C#", "Clojure", "Elm", "VBA"}
Лічити мови по одній незручно.
Реалізуйте статичний метод Languages.CountLanguages(), щоб порахувати кількість мов у масиві.
Languages.CountLanguages(Languages.GetExistingLanguages())
// => 3
Реалізуйте статичний метод Languages.HasLanguage(), щоб перевірити, чи присутня мова.
Languages.HasLanguage(Languages.GetExistingLanguages(), "Elm")
// => true
Згодом ми розуміємо, що наш масив насправді впорядковано задом наперед!
Реалізуйте статичний метод Languages.ReverseList(), щоб перевернути масив.
Languages.ReverseList(Languages.GetExistingLanguages())
// => {"Elm", "Clojure", "C#"}
Хоча ми любимо всі мови, C# займає особливе місце в нашому серці. Тому ми дуже радіємо масиву мов, якщо виконується одна з таких умов:
Реалізуйте статичний метод Languages.IsExciting(), щоб перевірити, чи масив мов захопливий:
Languages.IsExciting(Languages.GetExistingLanguages())
// => true
Будь ласка, реалізуйте статичний метод Languages.RemoveLanguage(), щоб видалити вказану мову з масиву.
Languages.RemoveLanguage(Languages.GetExistingLanguages(), "Clojure")
// => { "C#", "Elm" }
Будь ласка, реалізуйте статичний метод Languages.IsUnique(), щоб перевірити, чи не повторюється якась із мов у масиві.
Гарантовано, що масив мов (тобто параметр) не буде порожнім, коли викликають цей метод, і не має значення, чи буде масив змінено.
Languages.IsUnique(Languages.GetExistingLanguages())
// => true
Зареєструйтеся на Exercism, щоб вивчати й опановувати C#, а також 62 концепції178 вправ та справжнє наставництво від людей, і все це безкоштовно.