[ Полезный рекламный блок ]
Попробуйте свои силы в игре, где ваши навыки программирования на 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 и ознакомьтесь с условиями обучения, мы специализируемся только на индивидуальных занятиях, как для начинающих, так и для более продвинутых программистов. Вы можете взять как одно занятие для проработки интересующего Вас вопроса, так и несколько, для более плотной работы. Благодаря личному кабинету, каждый студент повысит качество своего обучения, в вашем распоряжении:
- Доступ к пройденному материалу
- Тематические статьи
- Библиотека книг
- Онлайн тестирование
- Общение в закрытых группах
Живи в своем мире, программируй в нашем.