В интерфейсеICollectionопределяются перечисленные ниже свойства. СвойствоCountиспользуется чаще всего, поскольку оно содержит количество элементов, хранящихся в коллекции на данный момент. Если значение свойстваCountравно нулю, то коллекция считается пустой.

В интерфейсеICollectionопределяется следующий метод.

void CopyTo(Arraytarget, intstartldx)

Свойство    Назначение

int Count { get; }    Содержит количество элементов в коллекции    на дан

ный момент

bool isSynchronized    { get; } Принимает .логическое значение true, если    коллек

ция синхронизирована, а иначе — логическое значение false. По умолчанию коллекции не синхронизированы. Но для большинства коллекций можно получить синхронизированный вариант object SyncRoot { get; }    Содержит объект, для которого коллекция    может

_быть синхронизирована_

МетодCopyTo() копирует содержимое коллекции в массивtarget,начиная с элемента, указываемого по индексуstartldx.Следовательно, методCopyTo() обеспечивает в C# переход от коллекции к стандартному массиву.

Благодаря тому что интерфейсICollectionнаследует от интерфейсаI Enumerable,в его состав входит также единственный метод, определенный в интерфейсеIEnumerable.Это методGetEnumerator (), объявляемый следующим образом.

IEnumerator GetEnumerator()

Он возвращает перечислитель для коллекции.

Вследствие того же наследования от интерфейсаIEnumerableв интерфейсеICollectionопределяются также четыре следующих метода расширения:AsParallel(),AsQueryable(),Cast() иOf Type(). В частности, методAsParallel() объявляется в классеSystem. Linq. ParallelEnumerable,методAsQueryable()в классеSystem. Linq. Queryable,а методыCast() иOf Type() — в классеSystem. Linq.Enumerable.Эти методы предназначены главным образом для поддержки LINQ, хотя их можно применять и в других целях.

Интерфейс IList

В интерфейсеIListобъявляется такое поведение необобщенной коллекции, которое позволяет осуществлять доступ к ее элементам по индексу с отсчетом от нуля. Этот интерфейс наследует от интерфейсовICollectionиIEnumerable.Помимо методов, определенных в этих интерфейсах, в интерфейсеIListопределяется ряд собственных методов. Все эти методы сведены в табл. 25.2. В некоторых из них предусматривается модификация коллекции. Если же коллекция доступна только для чтения или имеет фиксированный размер, то в этих методах генерируется исключениеNotSupportedException.

Tafuuiia 9fv9_ Мртплы пппрлрлрнныр r интрпгЬрйпр TLisI-

Метод

Описание

int Add(objectvalue)void Clear ()

bool Contains(objectvalue)

Добавляет объект value в вызывающую коллекцию. Возвращает индекс, по которому этот объект сохраняется

Удаляет все элементы из вызывающей коллекции Возвращает логическое значение true, если вызывающая коллекция содержит объект value, а иначе — логическое значение false

Метод

Описание

int IndexOf(objectvalue)

void Insert (intindex,objectvalue)

void Remove(objectvalue)

void RemoveAt(intindex)

Перейти на страницу:

Похожие книги