Чтение онлайн

ЖАНРЫ

C# 4.0 полное руководство - 2011

Шилдт Герберт

Шрифт:

зывающее множество и другое множество 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. В данном случае емкость обозначает размер базового массива, используемого для хранения элементов коллекции. Емкость коллекции, создаваемой в виде динамического массива, может увеличиваться автоматически по мере добавления в нее элементов.

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