C Sharp/Коллекция

Материал из Энциклопедия о программировании
Перейти к: навигация, поиск

Коллекция — упорядоченный набор данных (список).

Большая часть классов коллекций содержится в пространствах имен System.Collections (простые необобщенные классы коллекций), System.Collections.Generic (обобщенные или типизированные классы коллекций) и System.Collections.Specialized (специальные классы коллекций). Также для обеспечения параллельного выполнения задач и многопоточного доступа применяются классы коллекций из пространства имен System.Collections.Concurrent

Некоторые из коллекций реализуют стандартные структуры данных, e.g., стек, очередь, словарь, которые могут пригодиться для решения различных специальных задач.

Основой для создания всех коллекций является реализация интерфейсов IEnumerator и IEnumerable (и их обобщенных двойников IEnumerator<T> и IEnumerable<T>). Интерфейс IEnumerator представляет перечислитель, с помощью которого становится возможен последовательный перебор коллекции, e.g., в цикле foreach. А интерфейс IEnumerable через свой метод GetEnumerator предоставляет перечислитель всем классам, реализующим данный интерфейс. Поэтому интерфейс IEnumerable (IEnumerable<T>) является базовым для всех коллекций.

Examples

Пример коллекции List:

List<List<string>> rows = new List<List<string>>();
List<string> curRow = new List<string>();
curRow.Add("слово 1");
curRow.Add("слово 2");
rows.Add(curRow); // при отладке выяснится, что вот тут в общий внешний список не добавляется другой список