Учебное пособие по C# ArrayList с примерами
⚡ Умное резюме
ArrayList в C# — это динамическая коллекция из пространства имен System.Collections, которая хранит элементы в виде объектов. В отличие от массива, она увеличивается и уменьшается во время выполнения и может содержать целые числа, строки и логические значения вместе в одном списке.

Что такое ArrayList в С#?
Коллекция ArrayList похожа на Массивы тип данных в C#. Самым большим отличием является динамическая природа коллекции списков массивов.
Для массивов вам необходимо определить количество элементов, которые массив может содержать во время объявления массива. Но в случае с коллекцией Array List это не нужно делать заранее. Элементы можно добавлять или удалять из коллекции Array List в любой момент времени. Давайте рассмотрим операции, доступные для коллекции списков массивов, более подробно.
Объявление списка массивов
Объявление ArrayList представлено ниже. Список массивов создается с помощью типа данных ArrayList. Ключевое слово «new» используется для создания объекта ArrayList. Затем объект присваивается переменной a1. Итак, теперь переменная a1 будет использоваться для доступа к различным элементам списка массива.
ArrayList a1 = new ArrayList()
Добавление элементов в массив
Метод add используется для добавления элемента в ArrayList. Метод add можно использовать для добавления элемента любого типа данных в список массива. Таким образом, вы можете добавить целое число, строку или даже логическое значение в список массивов. Общий синтаксис метода сложения приведен ниже.
ArrayList.add(element)
Ниже приведены несколько примеров использования метода «добавить». Метод add можно использовать для добавления различных типов данных в коллекцию списка массивов.
Ниже вы можете увидеть примеры того, как мы можем добавлять целочисленные строки и даже логические значения в коллекцию списка массивов.
- a1.add(1) – это добавит в коллекцию целочисленное значение.
- a1.add («Пример») – это добавит строковое значение в коллекцию.
- a1.add(true) – это добавит логическое значение в коллекцию.
Теперь давайте посмотрим, как это работает на уровне кода. Весь приведенный ниже код будет записан в наше консольное приложение. Код будет записан в наш файл Program.cs.
В приведенной ниже программе мы напишем код для создания нового списка массивов. Мы также покажем, как добавлять элементы и отображать элементы списка массивов.
using System; using System.Collections; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; namespace DemoApplication { class Program { static void Main(string[] args) { ArrayList a1 = new ArrayList(); a1.Add(1); a1.Add("Example"); a1.Add(true); Console.WriteLine(a1[0]); Console.WriteLine(a1[1]); Console.WriteLine(a1[2]); Console.ReadKey(); } } }
Code Объяснение:-
- Первый шаг используется для объявления нашего списка массивов. Здесь мы объявляем a1 как переменную для хранения элементов нашего списка массивов.
- Затем мы используем ключевое слово add, чтобы добавить число 1, строку «Пример» и логическое значение «истина» в список массивов.
- Затем мы используем метод Console.WriteLine для отображения значения каждого элемента списка массива на консоли. Вы заметите, что, как и в случае с массивами, мы можем получить доступ к элементам через их индексные позиции. Поэтому для доступа к первой позиции списка массивов мы используем позицию индекса [0]. И так далее и тому подобное.
Если приведенный выше код введен правильно и программа запущена, будет отображен следующий вывод.
Выход:
Из вывода вы можете видеть, что все элементы из списка массива отправляются на консоль.
Давайте рассмотрим еще несколько методов, доступных как часть ArrayList.
Количество
Этот метод используется для получения количества элементов в коллекции ArrayList. Ниже приведен общий синтаксис этого утверждения.
ArrayList.Count() – этот метод вернет количество элементов, содержащихся в списке массива.
Комплект
Этот метод используется для проверки наличия элемента в коллекции ArrayList. Ниже приведен общий синтаксис этого оператора.
ArrayList.Contains(element) – этот метод вернет true, если элемент присутствует в списке, в противном случае он вернет false.
Удалитьат
Этот метод используется для удаления элемента в определенной позиции коллекции ArrayList. Ниже приведен общий синтаксис этого оператора.
ArrayList.RemoveAt(index) – этот метод удалит элемент из определенной позиции списка массивов.
Теперь давайте посмотрим, как это работает на уровне кода. Весь приведенный ниже код будет записан в наше консольное приложение. Код будет записан в наш файл Program.cs.
В приведенной ниже программе мы напишем код, чтобы увидеть, как мы можем использовать вышеупомянутые методы.
using System; using System.Collections; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; namespace DemoApplication { class Program { static void Main(string[] args) { ArrayList a1 = new ArrayList(); a1.Add(1); a1.Add("Example"); a1.Add(true); Console.WriteLine(a1.Count); Console.WriteLine(a1.Contains(2)); Console.WriteLine(a1[1]); a1.RemoveAt(1); Console.WriteLine(a1[1]); Console.ReadKey(); } } }
Code Объяснение:-
- Итак, первое свойство, которое мы видим, — это свойство Count. Мы получаем свойство Count списка массивов a1 и затем записываем его в консоль.
- Во второй части мы используем метод contains, чтобы проверить, содержит ли ArrayList a1 элемент 2. Затем мы записываем результат в консоль с помощью команды Writeline.
- Наконец, чтобы продемонстрировать метод Удалить элемент, мы выполняем следующие шаги:
- Сначала мы записываем значение элемента в индексной позиции 1 списка массивов на консоль.
- Затем мы удаляем элемент в индексной позиции 1 списка массивов.
- Наконец, мы снова записываем в консоль значение элемента в индексной позиции 1 списка массивов. Этот набор шагов даст четкое представление о том, будет ли метод удаления работать должным образом.
Если приведенный выше код введен правильно и программа запущена, будет отображен следующий вывод.
Выход:
Почему последнее значение верно?
Если вы видите последовательность событий, элемент Пример удаляется из массива, поскольку он находится в позиции 1. Позиция 1 массива затем заменяется тем, что было в позиции 2 ранее, и имеет значение «истина».
Как пройтись циклом по ArrayList в C#
Чтение каждого элемента ArrayList — распространённая задача. Поскольку ArrayList хранит свои элементы в виде объектов, вы можете обращаться к ним с помощью цикла foreach или цикла for, использующего свойство Count. Цикл foreach — самый простой способ, поскольку он проходит по каждому элементу по порядку без необходимости использования индекса.
В приведенном ниже примере создается список строк (ArrayList) и каждое значение выводится на отдельной строке. Код написан в файле Program.cs консольного приложения.
Шаг 1) Импортируйте пространство имен System.Collections и создайте ArrayList с тремя элементами.
Шаг 2) Используйте цикл foreach, чтобы прочитать каждый элемент как объект и вывести его в консоль.
using System; using System.Collections; namespace DemoApplication { class Program { static void Main(string[] args) { ArrayList a1 = new ArrayList(); a1.Add("Java"); a1.Add("Python"); a1.Add("Kotlin"); foreach (object item in a1) { Console.WriteLine(item); } Console.ReadKey(); } } }
Code Объяснение:-
- Пространство имен System.Collections импортируется, поэтому тип ArrayList доступен программе.
- С помощью метода Add в ArrayList добавляются три строковых значения.
- Цикл foreach считывает каждый элемент как объект, а метод Console.WriteLine выводит его на новую строку.
При запуске программа выводит сообщение на экран. Java, Python и Котлин на отдельных строках. Цикл for со свойством Count даст тот же результат, а также позволит использовать индекс каждого элемента.
Методы и свойства ArrayList в C#
Класс ArrayList предоставляет множество встроенных методов и свойств для управления своими элементами. Помимо добавления и удаления элементов, он может сортировать, искать и переворачивать коллекцию. Наиболее распространенные члены перечислены ниже.
| Член | Описание |
| Добавить | Добавляет один элемент в конец списка ArrayList. |
| Вставить | Добавляет элемент в позицию с определенным индексом. |
| Удалить | Удаляет первое вхождение определенного элемента. |
| Удалитьат | Удаляет элемент по заданному индексу. |
| Очистить | Удаляет все элементы из ArrayList. |
| Сортировать | Сортирует элементы в порядке возрастания. |
| Reverse | Reverses — порядок элементов в списке. |
| Комплект | Возвращает true, если заданный элемент существует в списке. |
| Индекс чего-либо | Возвращает индекс заданного элемента. |
| Количество | Свойство, возвращающее количество сохраненных элементов. |
| Рабочий диапазон | Свойство, возвращающее количество элементов, которое может содержать список. |
Эти элементы позволяют добавлять, находить, упорядочивать и удалять элементы без необходимости писать собственную логику, что является одним из главных преимуществ использования коллекций по сравнению с обычным массивом.
Разница между ArrayList и List в C#
И ArrayList, и обобщенный Список Они хранят группу элементов, которая может увеличиваться во время выполнения, но различаются по способу обработки типов. Знание этих различий поможет выбрать подходящий вариант для современного кода на C#.
Основные различия перечислены ниже:
- Тип безопасности: В ArrayList каждый элемент хранится как объект, тогда как List привязан к одному объявленному типу и проверяется во время компиляции.
- Производительность: ArrayList упаковывает и распаковывает значения таких типов, как int, что занимает время, тогда как List избегает упаковки, что обеспечивает более высокую скорость.
- Пространство имен: Класс ArrayList находится в System.Collections, а класс List — в System.Collections.Generic.
- Кастинг: При чтении из ArrayList часто требуется приведение типа к исходному, тогда как List возвращает правильный тип напрямую.
- Рекомендация: Microsoft Рекомендуется использовать List для новых разработок, поскольку это безопаснее, быстрее и проще для чтения.
Вкратце, ArrayList полезен для понимания старого кода или хранения данных смешанных типов, в то время как List является предпочтительным выбором для большинства современных приложений.




