Кроме того, в классеSortedDictionaryопределяются собственные свойства, помимо тех, что уже объявлены в интерфейсах, которые в нем реализуются. Эти свойства приведены ниже.

Свойство

Описание

public Icomparer Comparer { get; ]

public SortedDictionaryCTKey, TValue>. KeyCollection Keys { get; } public SortedDictionary. ValueCollection Values { get; }

\ Получает метод сравнения для вызывающего словаря Получает коллекцию ключей

Получает коллекцию значений

Следует иметь в виду, что ключи и значения, содержащиеся в коллекции, доступны отдельными списками с помощью свойствKeysиValues.В коллекциях типаSortedDictionary.KeyCollectionи SortedDictionary. ValueCollectionреализуются как обобщенные, так и необобщенные формы интерфейсовICollectionиIEnumerable.

И наконец, в классеSortedDictionaryреализуется приведенный ниже индексатор, определенный в интерфейсеIDictionary

public TValue this[TKeykey] {get; set; }

Этот индексатор служит для получения и установки значения элемента коллекции, а также для добавления в коллекцию нового элемента. Но в данном случае в качестве индекса служит ключ элемента, а не сам индекс.

При перечислении коллекции типаSortedDictionaryиз нее возвращаются пары "ключ-значение" в форме структурыKeyValuePairНапомним, что в этой структуре определяются два следующих поля.

public TKey Key; public TValue Value;

В этих полях содержится ключ или значение соответствующего элемента коллекции. Как правило, структураKeyValuePairне используется непосредственно, поскольку средства классаSortedDictionaryпозволяют работать с ключами и значениями по отдельности. Но при перечислении коллекции типаSortedDictionary,например в циклеforeach,перечисляемыми объектами являются пары типаKeyValuePair.

Все ключи в коллекции типаSortedDictionaryдолжны быть уникальными, причем ключ не должен изменяться до тех пор, пока он служит в качестве ключа. В то же время значения не обязательно должны быть уникальными.

В приведенном ниже примере демонстрируется применение классаSortedDictionaryЭто измененный вариант предыдущего примера, демонстрировавшего применение классаDictionaryВ данном варианте база данных работников отсортирована по фамилии и имени работника, которые служат в качестве ключа.

// Продемонстрировать применение класса обобщенной // коллекции SortedDictionary

using System;

using System.Collections.Generic;

class GenSortedDictionaryDemo { static void Main() {

// Создать словарь для хранения имен и фамилий // работников и их зарплаты.

SortedDictionary diet =

new SortedDictionary();

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

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