Когда стоит применять коллекции? Рассмотрим интерфейсы из коллекций.

Приветствую всех, сегодня попробуем разобраться в том когда же все таки стоит применять коллекции…

Коллекция представляет собой набор объектов схожих типов, сгруппированных вместе.

Емкость коллекции — это число элементов, которое она может содержать.

Количество элементов коллекции — это число элементов, которое она реально
содержит.

Нижняя граница коллекции — это индекс ее первого элемента.

Перечислитель — это объект, который выполняет итерацию в связанной с ним коллекции. Можно считать, что он является перемещаемым указателем на любой элемент коллекции. Перечислитель может быть связан только с одной коллекцией, но коллекция может иметь несколько перечислителей. Оператор foreach использует перечислитель и упрощает обращение с коллекцией.

Все перечислители основаны на интерфейсах IEnumerator и IEnumerable или на их обобщенных аналогах IEnumerator<T> и IEnumerable<T>.

Коллекции стоит применять, если:
• Отдельные элементы используются для одинаковых целей и одинаково важны.
• На момент компиляции число элементов не известно или не зафиксировано.
• Необходима поддержка операции перебора всех элементов.
• Необходима поддержка упорядочивания элементов.
• Необходимо использовать элементы из библиотеки, от которой потребитель ожидает наличия типа коллекции.

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

IEnumerable

Методы интерфейса IEnumerable:
IEnumerator GetEnumerator()— возвращает перечислитель, который можно использовать для навигации по коллекции.

 

IEnumerator

Свойства интерфейса IEnumerator: object Current { get; } – возвращает текущий элемент коллекции.
Методы интерфейса IEnumerator: bool MoveNext() – перемещает перечислитель на следующий элемент коллекции.
void Reset() – возвращает перечислитель на начало коллекции.

 

IEnumerable<T>

IEnumerable<T> — унаследован от IEnumerable

Методы интерфейса IEnumerable<T>: IEnumerator<T> GetEnumerator()— возвращает обобщенный перечислитель, который можно использовать для навигации по коллекции.

 

IEnumerator<T>

Enumerator<T> унаследован от IDisposable и IEnumerator
Свойства интерфейса IEnumerator<T>: T Current { get;} – возвращает текущий элемент коллекции.

 

ICollection

Интерфейс ICollection определяет размер, перечислители и методы синхронизации для всех нестандартных коллекций. Интерфейс ICollection — это базовый интерфейс
для классов в пространстве имен System.Collections, а интерфейс ICollection<T> является базовым интерфейсом для классов в пространстве имен System.Collections.Generic.

Интерфейс ICollection расширяет интерфейсы IEnumerable, IDictionary и IList и является более специализированным интерфейсом.

ICollection Унаследован от: IEnumerable
Свойства интерфейса ICollection: int Count { get; } – возвращает количество элементов, хранящихся в коллекции.
bool IsSynchronized { get; } – признак синхронизации доступа к коллекции.
object SyncRoot { get; } – объект синхронизации доступа к коллекции.
Методы интерфейса ICollection: void CopyTo(Array array, int index) – выполняет копирование элементов коллекции в массив, начиная с указанного индекса.

 

ICollection<T>

ICollection<T> унаследован от IEnumerable<T> и IEnumerable

Свойства интерфейса ICollection<T>: int Count { get; } – возвращает количество элементов, хранящихся в коллекции.
bool IsReadOnly { get; } – показывает, является ли коллекция доступной только для чтения.
Методы интерфейса ICollection<T>:void Add(T item) – позволяет помещать элементы в коллекцию.
void Clear() – очищает содержимое коллекции.
bool Contains(T item) – определяет, содержится ли в коллекции указанное значение.
void CopyTo(T[] array, int arrayIndex) — выполняет копирование элементов коллекции в массив, начиная с указанного индекса.
bool Remove(T item) – удаляет из коллекции первый элемент, значение которого соответствует значению аргумента.

IList

Реализация IList является коллекцией и доступ к ее элементам может быть осуществлен с помощью индекса, например, как в классе ArrayList.

List Унаследован от ICollection и IEnumerable
Свойства интерфейса IList: bool IsFixedSize { get; } – показывает, является ли размер списка фиксированным.
bool IsReadOnly { get; } — показывает, является ли список доступным только для чтения.
object this[int index] { get; set; } – индексатор, позволяющий помещать либо извлекать значения по указанному индексу.
Методы интерфейса IList: int Add(object value) – позволяет помещать элементы в список.
void Clear() – очищает содержание списка.
bool Contains(object value) – определяет, содержится ли в списке указанное значение.
int IndexOf(object value) – возвращает индекс элемента с указанным значением.
void Insert(int index, object value) – помещает элемент в список по указанному индексу.
void Remove(object value) – удаляет из списка первый элемент, значение которого соответствует значению аргумента.
void RemoveAt(int index) – удаляет элемент по указанному индексу.

 

 

 

 

 

 

Обновлено: 23.05.2018 — 15:23

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *

Этот сайт использует Akismet для борьбы со спамом. Узнайте, как обрабатываются ваши данные комментариев.