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

    // работников и их зарплаты.

    Dictionary diet =

            new Dictionary();

    // Добавить элементы в коллекцию,

    diet.Add("Батлер, Джон", 73000);

    diet.Add("Шварц, Capa", 59000);

    diet.Add("Пайк, Томас", 45000);

    diet.Add("Фрэнк, Эд", 99000);

    // Получить коллекцию ключей, т.е. фамилий и имен.

    ICollection с = diet.Keys;

    // Использовать ключи для получения значений, т.е. зарплаты,

    foreach(string str in с)

      Console.WriteLine ("{0}, зарплата: {1:C}", str, diet[str]);

  }

}

Ниже приведен результат выполнения этой программы.

Батлер, Джон, зарплата: $73 000,00

Шварц, Capa, зарплата: $59 000,00

Пайк, Томас, зарплата: $45 000,00

Фрэнк, Эд, зарплата: $99 000,00

Класс SortedDictionary

В коллекции класса SortedDictionary пары "ключ-значение" хранятся таким же образом, как и в коллекции класса Dictionary, за исключением того, что они отсортированы по соответствующему ключу. В классе SortedDictionary реализуются интерфейсы IDictionary, IDictionary, ICollection, ICollection>, IEnumerable и IEnumerable>. В классе SortedDictionary предоставляются также следующие конструкторы.

public SortedDictionary()

public SortedDictionary(IDictionary dictionary)

public SortedDictionary(IComparer comparer)

public SortedDictionary(IDictionaryCTKey, TValue> dictionary,

                   IComparer comparer)

В первом конструкторе создается пустой словарь, во втором конструкторе — словарь с указанным количеством элементов dictionary. В третьем конструкторе допускается указывать с помощью параметра comparer типа IComparer способ сравнения, используемый для сортировки, а в четвертом конструкторе — инициализировать словарь, помимо указания способа сравнения.

В классе SortedDictionary определен ряд методов. Некоторые наиболее часто используемые методы этого класса сведены в табл. 25.18.

Таблица 25.18. Наиболее часто используемые методы, определенные в классе SortedDictionaryCTKey, TValue>

Метод - Описание

public void Add (TKeykey, TValuevalue) -

Добавляет в словарь пару “ключ-значение", определяемую параметрами key и value. Если ключ key уже находится в словаре, то его значение не изменяется, и генерируется исключение ArgumentException

public bool ContainsKey (TKeyкеу) - Возвращает логическое значение true, если вызывающий словарь содержит объект key в качестве ключа; в противном случае — логическое значение false

public bool ContainsValue(TValuevalue)public bool Remove(TKeykey) - Возвращает логическое значение true, если вызывающий словарь содержит значение value; в противном случае — логическое значение false Удаляет ключ key из словаря. При удачном исходе операции возвращается логическое значение true, а если ключ key отсутствует в словаре — логическое значение false

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

Свойство - Описание

public Icomparer Comparer { get; } - Получает метод сравнения для вызывающего словаря

public SortedDictionary.KeyCollection Keys { get; } - Получает коллекцию ключей

public SortedDictionary.ValueCollection Values { get; } - Получает коллекцию значений

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

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

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