Например, оператор foreach опрашивает объект, на предмет того, реализует ли он интерфейс System.Collection.IEnumerable.


Если Вы подготовили объект с этим интерфейсом, то оператор foreach будет успешно использовать Ваш метод GetEnumerator(). Этот метод возвратит объект с методом MoveNext() и свойством Current для доступа к очередному элементу коллекции.

Если окажется, что объект не реализует требуемый интерфейс, foreach сгенерирует исключение.

Интерфейсы коллекций

В С# под коллекцией понимается группа объектов. Пространство имен System. Collections содержит множество интерфейсов и классов, которые определяют и реализуют коллекции различных типов. Все эти коллекции разработаны на основе набора четко определенных интерфейсов.

Ряд встроенных реализаций интерфейсов в таких коллекциях как ArrayList, Hashtable, Stack и Queue, вы можете использовать "как есть".

У каждого программиста также есть возможность реализовать собственную коллекцию, но в большинстве случаев достаточно встроенных.

Среда .NET Framework поддерживает три основных типа коллекций:

• общего назначения,

• специализированные,

• ориентированные на побитовую организацию данных.

Коллекции общего назначения реализуют ряд основных структур данных, включая динамический массив, стек и очередь. Сюда также относятся словари, предназначенные для хранения пар ключ/значение. Коллекции общего назначения работают с данными типа object, поэтому их можно использовать для хранения данных любого типа.

Мощь коллекций состоит в том, что они могут хранить не только встроенные типы, но и объекты любого типа, включая объекты классов, создаваемых программистами.

Коллекции специального назначения ориентированы на обработку данных конкретного типа или на обработку уникальным способом. Например, существуют специализированные коллекции, предназначенные только для обработки строк или однонаправленного списка.

Классы коллекций, ориентированных на побитовую организацию данных, служат для хранения групп битов. Коллекции этой категории поддерживают такой набор операций, который не характерен для коллекций других типов. Например, в известной многим биториентированной коллекции BitArray определены такие побитовые операции, как И и исключающее ИЛИ.

 

 

Таблица. Интерфейсы коллекций

Интерфейс Описание
IEnumerable Определяет метод GetEnumerator(), который поддерживает перечислитель для любого класса коллекции
IEnumerator Содержит методы, которые позволяют поэлементно получать содержимое коллекции
ICollection Определяет элементы, которые должны иметь все коллекции
IList Определяет коллекцию, к которой можно получить доступ посредством индексатора
IDictionary Определяет коллекцию, которая состоит из пар ключ/значение
IDictionaryEnumerator Определяет перечислитель для коллекции, которая реализует интерфейс IDictionary
IComparer Определяет метод compare(), который выполняет сравнение объектов, хранимых в коллекции
IHashCodeProvider Определяет хеш-функцию


Дата добавления: 2019-02-08; просмотров: 650;


Поиск по сайту:

Воспользовавшись поиском можно найти нужную информацию на сайте.

Поделитесь с друзьями:

Считаете данную информацию полезной, тогда расскажите друзьям в соц. сетях.
Poznayka.org - Познайка.Орг - 2016-2024 год. Материал предоставляется для ознакомительных и учебных целей.
Генерация страницы за: 0.007 сек.