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(object
bool Contains(object
Добавляет объект
Удаляет все элементы из вызывающей коллекции Возвращает логическое значение true, если вызывающая коллекция содержит объект
Метод
Описание
int IndexOf(object
void Insert (int
void Remove(object
void RemoveAt(int
Возвращает индекс объекта
Вставляет в вызывающую коллекцию объект
Удаляет первое вхождение объекта value в вызывающей коллекции. Элементы, находившиеся до этого за удаленным элементом, смещаются назад, чтобы устранить образовавшийся “пробел”
Удаляет из вызывающей коллекции объект, расположенный по указанному индексу
Объекты добавляются в коллекцию типа IList вызовом метода Add (). Обратите внимание на то, что метод Add () принимает аргумент типа obj ect. А поскольку object является базовым классом для всех типов, то в необобгценной коллекции может быть сохранен объект любого типа, включая и типы значений, в силу автоматической упаковки и распаковки.
Для удаления элемента из коллекции служат методы Remove () и RemoveAt (). В частности, метод Remove () удаляет указанный объект, а метод RemoveAt () удаляет объект по указанному индексу. И для опорожнения коллекции вызывается метод Clear () .
Для того чтобы выяснить, содержится ли в коллекции конкретный объект, вызывается метод Contains (). Для получения индекса объекта вызывается метод IndexOf (), а для вставки элемента в коллекцию по указанному индексу — метод Insert ().
В интерфейсе IList определяются следующие свойства.
bool IsFixedSize { get; } bool IsReadOnly { get; }
Если коллекция имеет фиксированный размер, то свойство IsFixedSize содержит логическое значение true. Это означает, что в такую коллекцию нельзя ни вставлять элементы, ни удалять их из нее. Если же коллекция доступна только для чтения, то свойство IsReadOnly содержит логическое значение true. Это означает, что содержимое такой коллекции не подлежит изменению.
Кроме того, в интерфейсе IList определяется следующий индексатор.
object this[int index] { get; set; }
Этот индексатор служит для получения и установки значения элемента коллекции. Но его нельзя использовать для добавления в коллекцию нового элемента. С этой целью обычно вызывается метод Add (). Как только элемент будет добавлен в коллекцию, он станет доступным посредством индексатора.
Интерфейс IDictionary
В интерфейсе IDictionary определяется такое поведение необобщенной коллекции, которое позволяет преобразовать уникальные ключи в соответствующие
