[ Полезный рекламный блок ]
Попробуйте свои силы в игре, где ваши навыки программирования на C# станут решающим фактором. Переходите по ссылке 🔰.
У C# ви можете створити динамічний масив за допомогою класу List<T>. Клас List<T> – це універсальна колекція, яка може зберігати елементи будь-якого типу й автоматично змінює свій розмір у міру необхідності.
Ось приклад створення динамічного масиву цілих чисел за допомогою класу List<int>:
1 2 3 4 5 6 7 8 9 10 11 12 |
static void Main() { List<int> dynamicArray = new List<int>(); dynamicArray.Add(1); dynamicArray.Add(2); dynamicArray.Add(3); foreach (var item in dynamicArray) { Console.WriteLine(item); } } |
Для доступу до елементів динамічного масиву можна так само використовувати оператор індексації:
1 2 3 |
int firstElement = dynamicArray[0]; int secondElement = dynamicArray[1]; int thirdElement = dynamicArray[2]; |
А якщо вам потрібно видалити елемент з динамічного масиву, ви можете використовувати метод Remove:
1 |
dynamicArray.Remove(2); |
Детальніше про цю колекцію, читайте на офіційному сайтіMicrosoft.
Динамічний масив на основі класу
Щоб створити свій власний динамічний масив у C#, ви можете реалізувати клас, який усередині буде використовувати звичайний масив для зберігання своїх елементів, а потім реалізувати методи для додавання, видалення та доступу до елементів, динамічно змінюючи розмір масиву в міру необхідності.
Ось приклад реалізації класу динамічного масиву:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 |
public class MyDynamicArray<T> { private T[] items; private int size; private int capacity; public MyDynamicArray() { size = 0; capacity = 4; // initial capacity items = new T[capacity]; } public int Count { get { return size; } } public void Add(T item) { if (size == capacity) { capacity *= 2; // double the capacity Array.Resize(ref items, capacity); } items[size] = item; size++; } public T this[int index] { get { return items[index]; } set { items[index] = value; } } public void RemoveAt(int index) { for (int i = index; i < size - 1; i++) { items[i] = items[i + 1]; } size--; } } |
У даній реалізації, клас має приватний масив items, який ініціалізується з початковою ємністю 4. Властивість Count повертає поточну кількість елементів у масиві, а метод Add додає новий елемент у масив, змінюючи за необхідності його розмір. Метод RemoveAt видаляє елемент за вказаним індексом і зсуває елементи, що залишилися, щоб заповнити пробіл.
Ви можете використовувати клас у такий спосіб:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 |
static void Main() { MyDynamicArray<int> dynamicArray = new MyDynamicArray<int>(); dynamicArray.Add(1); dynamicArray.Add(2); dynamicArray.Add(3); Console.WriteLine(dynamicArray[0]); // Output: 1 Console.WriteLine(dynamicArray[1]); // Output: 2 Console.WriteLine(dynamicArray[2]); // Output: 3 dynamicArray.RemoveAt(1); Console.WriteLine(dynamicArray[0]); // Output: 1 Console.WriteLine(dynamicArray[1]); // Output: 3 } |
За таким же принципом, ви можете додати необхідні методи, на кшталт: вставка, сортування, пошук тощо.
Я сподіваюся, що вам сподобалося читати цю статтю, і вона виявилася легкою для розуміння. Будь ласка, дайте мені знати, якщо у вас є які-небудь коментарі або виправлення.
Я сподіваюся, що вам сподобалося читати цю статтю, і вона виявилася легкою для розуміння. Будь ласка, дайте мені знати, якщо у вас є якісь коментарі або виправлення.
Так само вам може бути цікава попередня стаття – Як зробити перехід на іншу форму.
Ви хочете навчитися писати код мовою програмування C#?
Створювати різні інформаційні системи, що складаються з сайтів, мобільних клієнтів, десктопних додатків, телеграм-ботів тощо.
Переходьте до нас на сторінку Dijix і ознайомтеся з умовами навчання, ми спеціалізуємося тільки на індивідуальних заняттях, як для початківців, так і для просунутих програмістів. Ви можете взяти як одне заняття для опрацювання питання, що вас цікавить, так і кілька, для більш щільної роботи. Завдяки особистому кабінету, кожен студент підвищить якість свого навчання, у вашому розпорядженні:
- Доступ до пройденого матеріалу
- Тематичні статті
- Бібліотека книг
- Онлайн тестування
- Спілкування в закритих групах