Лекции.Орг


Поиск:




Категории:

Астрономия
Биология
География
Другие языки
Интернет
Информатика
История
Культура
Литература
Логика
Математика
Медицина
Механика
Охрана труда
Педагогика
Политика
Право
Психология
Религия
Риторика
Социология
Спорт
Строительство
Технология
Транспорт
Физика
Философия
Финансы
Химия
Экология
Экономика
Электроника

 

 

 

 


Bool IsProperSupersetOf(lEnumera




 

возвращает логическое значение true, если вы

 

ble<T> other)

 

зывающее множество является правильным надмножеством другого множества other, а иначе — логическое значение false

 

bool IsSubsetOf(IEnumerable<T>

 

Возвращает логическое значение true, если вы

 

other)

 

зывающее множество является подмножеством другого множества other, а иначе — логическое значение false

 

Bool

 

Возвращает логическое значение true, если вы

 

IsSupersetOf(IEnumerable<T>

 

зывающее множество является надмножеством

 

other)

 

другого множества other, а иначе — логическое значение false

 

bool Overlaps(IEnumerable<T>

 

Возвращает логическое значение true, если вы

 

other)

 

зывающее множество и другое множество other содержат хотя бы один общий элемент, а иначе — логическое значение false

 

bool SetEquals(IEnumerable<T>

 

Возвращает логическое значение true, если все

 

other)

 

элементы вызывающего множества и другого множества other оказываются общими, а иначе —логическое значение false. Порядок расположения элементов не имеет значения, а дублирующиеся элементы во другом множестве other игнорируются

 

Void SymmetricExceptWith

 

После вызова этого метода вызывающее множе

 

(IEnumerable<T> other)

 

ство будет содержать симметрическую разность своих элементов и элементов другого множества

other

 

void UnionWith(IEnumerable<T>

 

После вызова этого метода вызывающее множе

 

other)

 

ство будет содержать объединение своих элементов и элементов другого множества other

 

Структура KeyValuePair<TKey, TValue>

В пространстве имен System.Collections. Generic определена структура KeyValuePair<TKey, TValue>. Она служит для хранения ключа и его значения и применяется в классах обобщенных коллекций, в которых хранятся пары "ключ-значение", как, например, в классе Dictionary<TKey, TValueX В этой структуре определяются два следующих свойства.

public TKey Key { get; }; public TValue Value { get; };

В этих свойствах хранятся ключ и значение соответствующего элемента коллекции. Для построения объекта типа KeyValuePair<TKey, TValue> служит конструктор:

public KeyValuePair(TKey key, TValue value) где key обозначает ключ, a value — значение.

Классы обобщенных коллекций

Как упоминалось ранее, классы обобщенных коллекций по большей части соответствуют своим необобщенным аналогам, хотя в некоторых случаях они носят другие имена. Отличаются они также своей организацией и функциональными возможностями. Классы обобщенных коллекций определяются в пространстве имен System. Collections. Generic. В табл. 25.14 приведены классы, рассматриваемые в этой главе. Эти классы составляют основу обобщенных коллекций.

Таблица 25.14. Основные классы обобщенных коллекций

 

Класс

 

Описание

 

Dictionary<Tkey,

 

TValue>

 

Сохраняет пары “ключ-значение". Обеспечивает такие же функциональные возможности, как и необобщенный класс Hashtable

 

HashSet<T>

 

Сохраняет ряд уникальных значений, используя хеш-таблицу

 

LinkedList<T>

 

Сохраняет элементы в двунаправленном списке

 

List<T>

 

Создает динамический массив. Обеспечивает такие же функциональные возможности, как и необобщенный класс ArrayList

 

Queue<T>

 

Создает очередь. Обеспечивает такие же функциональные возможности, как и необобщенный класс Queue

 

SortedDictionary<TKey,

 

Создает отсортированный список из пар “ключ-

 

TValue>

 

значение"

 

SortedList<TKey,

 

TValue>

 

Создает отсортированный список из пар “ключ-значение”. Обеспечивает такие же функциональные возможности, как и необобщенный класс SortedList

 

SortedSet<T>

 

Создает отсортированное множество

 

Stack<T>

 

Создает стек. Обеспечивает такие же функциональные возможности, как и необобщенный класс Stack

 

ПРИМЕЧАНИЕ

В пространстве имен System. Collections. Generic находятся также следующие классы: класс SynchronizedCollection<T> синхронизированной коллекции на основе класса IList<T>; класс SynchronizedReadOnlyCollection<T>, доступной только для чтения синхронизированной коллекции на основе класса lList<T>; абстрактный класс SynchronizedKeyCollectioncK, т>, служащий в качестве базового для класса коллекции System. ServiceModel. UriSchemeKeyedCollection; а также класс KeyedByTypeCollection<T> коллекции, в которой в качестве ключей используются отдельные типы данных.

Класс List<T>

В классе List<T> реализуется обобщенный динамический массив. Он ничем принципиально не отличается от класса необобщенной коллекции ArrayList. В этом классе реализуются интерфейсы ICollection, ICollection<T>, IList, IList<T>, IEnumerable и IEnumerable<T>. У класса List<T> имеются следующие конструкторы.

Public List()

public List(IEnumerable<T> collection) public List(int capacity)

Первый конструктор создает пустую коллекцию класса List с выбираемой по умолчанию первоначальной емкостью. Второй конструктор создает коллекцию типа List с количеством инициализируемых элементов, которое определяется параметром collection и равно первоначальной емкости массива. Третий конструктор создает коллекцию типа List, имеющую первоначальную емкость, задаваемую параметром capacity. В данном случае емкость обозначает размер базового массива, используемого для хранения элементов коллекции. Емкость коллекции, создаваемой в виде динамического массива, может увеличиваться автоматически по мере добавления в нее элементов.

В классе List<T> определяется ряд собственных методов, помимо тех, что уже объявлены в интерфейсах, которые в нем реализуются. Некоторые из наиболее часто используемых методов этого класса перечислены в табл. 25.15.

Таблица 25.15. Наиболее часто используемые методы, определенные в классе List<T>

 

Метод

 

Описание

 

public virtual void AddRange(Icollection - collection) public virtual int BinarySearch(T item)

 

Добавляет элементы из коллекции collection в конец вызывающей коллекции типа ArrayList

Выполняет поиск в вызывающей коллекции значения, задаваемого параметром item. Возвращает индекс совпавшего элемента. Если искомое значение не найдено, возвращается отрицательное значение. Вызывающий список должен быть отсортирован

 

Метод

 

Описание

 

Public

 

Int BinarySearch(T

 

Выполняет поиск в вызывающей коллекции значе

 

item,

 

IComparer<T> comparer)

 

ния, задаваемого параметром item, используя для сравнения указанный способ, определяемый параметром comparer. Возвращает индекс совпавшего элемента. Если искомое значение не найдено, возвращается отрицательное значение. Вызывающий список должен быть отсортирован

 

Public

 

Int BinarySearch(int

 

Выполняет поиск в вызывающей коллекции значе

 

index,

 

int count, T item,

 

ния, задаваемого параметром item, используя для

 

IComparer<T> comparer)

 

сравнения указанный способ, определяемый параметром comparer. Поиск начинается с элемента, указываемого по индексу index, и включает количество элементов, определяемых параметром count. Метод возвращает индекс совпавшего элемента. Если искомое значение не найдено, возвращается отрицательное значение. Вызывающий список должен быть отсортирован

 

Public

 

List<T> GetRange(int

 

Возвращает часть вызывающей коллекции. Часть

 

index,

 

int count)

 

возвращаемой коллекции начинается с элемента, указываемого по индексу index, и включает количество элементов, задаваемое параметром count. Возвращаемый объект ссылается на те же элементы, что и вызывающий объект

 

Public

 

int IndexOf(T item)

 

Возвращает индекс первого вхождения элемента item в вызывающей коллекции. Если искомый элемент не обнаружен, возвращается значение -1

 

Public

 

Void InsertRange(int

 

Вставляет элементы коллекции collection в вы

 

index,

 

IEnumerable<T>

 

зывающую коллекцию, начиная с элемента, указы

 

collection)

 

ваемого по индексу index

 

public i tern)

 

Int LastlndexOf(T

 

Возвращает индекс последнего вхождения элемента item в вызывающей коллекции. Если искомый элемент не обнаружен, возвращается значение -1

 

Public

 

Void RemoveRange(int

 

Удаляет часть вызывающей коллекции, начиная с

 

index,

 

int count)

 

элемента, указываемого по индексу index, и включая количество элементов, определяемое параметром count

 

Public

 

Void Reverse()

 

Располагает элементы вызывающей коллекции в обратном порядке

 

Public

 

Void Reverse(int

 

Располагает в обратном порядке часть вызываю

 

index,

 

int count)

 

щей коллекции, начиная с элемента, указываемого по индексу index, и включая количество элементов, определяемое параметром count

 

Public

 

Void Sort()

 

Сортирует вызывающую коллекцию по нарастающей

 

Окончание табл. 25.15

 

Метод

 

Описание

 

Public void

 

Сортирует вызывающую коллекцию, используя

 

Sort(IComparer<T> comparer)

 

для сравнения способ, задаваемый параметром comparer. Если параметр comparer имеет пустое значение, то для сравнения используется способ, выбираемый по умолчанию

 

Public void

 

Сортирует вызывающую коллекцию, используя для

 

Sort(Comparison<T> comparison)

 

сравнения указанный делегат

 

public void Sort(int index,

 

Сортирует вызывающую коллекцию, используя

 

int count, IComparer<T>

 

для сравнения способ, задаваемый параметром

 

comparer)

 

comparer. Сортировка начинается с элемента, указываемого по индексу index, и включает количество элементов, определяемых параметром count. Если параметр comparer имеет пустое значение, то для сравнения используется способ, выбираемый по умолчанию

 

public T [ ] ToArrayO

 

Возвращает массив, содержащий копии элементов вызывающего объекта

 

Public void TrimExcess()

 

Сокращает емкость вызывающей коллекции таким образом, чтобы она не превышала 10% от количества элементов, хранящихся в ней на данный момент

 

В классе List<T> определяется также собственное свойство Capacity, помимо тех, что уже объявлены в интерфейсах, которые в нем реализуются. Это свойство объявляется следующим образом.

public int Capacity { get; set; }

Свойство Capacity позволяет установить и получить емкость вызывающей коллекции в качестве динамического массива. Эта емкость равна количеству элементов, которые может содержать коллекция до ее вынужденного расширения. Такая коллекция расширяется автоматически, и поэтому задавать ее емкость вручную необязательно. Но из соображений эффективности это иногда можно сделать, если заранее известно количество элементов коллекции. Благодаря этому исключаются издержки на выделение дополнительной памяти.

В классе List<T> реализуется также приведенный ниже индексатор, определенный в интерфейсе IList<T>.

public Т this[int index] { get; set; }

С помощью этого индексатора устанавливается и получается значение элемента коллекции, указываемое по индексу index.

В приведенном ниже примере программы демонстрируется применение класса List<T>. Это измененный вариант примера, демонстрировавшего ранее класс ArrayList. Единственное изменение, которое потребовалось для этого, заключалось в замене класса ArrayList классом List, а также в использовании параметров обобщенного типа.

// Продемонстрировать применение класса List<T>. using System;





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


Дата добавления: 2016-12-03; Мы поможем в написании ваших работ!; просмотров: 345 | Нарушение авторских прав


Поиск на сайте:

Лучшие изречения:

Студент может не знать в двух случаях: не знал, или забыл. © Неизвестно
==> читать все изречения...

2817 - | 2385 -


© 2015-2025 lektsii.org - Контакты - Последнее добавление

Ген: 0.013 с.