public virtual IList GetKeyList() - Возвращает коллекцию типа SortedList с ключами, хранящимися в вызывающей коллекции типа SortedList
public virtual IList GetValueList() - Возвращает коллекцию типа SortedList со значениями, хранящимися в вызывающей коллекции типа SortedList
public virtual int IndexOfKey(object
public virtual int IndexOfValue(object
public virtual void SetBylndex(int
public static SortedList Synchronized(SortedList
public virtual void TrimToSize() - Устанавливает значение свойства Capacity равным значению свойства Count
Ключ или значение можно получить разными способами. В частности, для получения значения по указанному индексу служит метод GetByIndex()
, а для установки значения по указанному индексу — метод SetByIndex()
. Для извлечения ключа по указанному индексу вызывается метод GetKey()
, а для получения списка ключей по указанному индексу — метод GetKeyList()
. Кроме того, для получения списка всех значений из коллекции служит метод GetValueList()
. Для получения индекса ключа вызывается метод IndexOfKey()
, а для получения индекса значения — метод IndexOfValue()
. Безусловно, в классе SortedList
также поддерживается индексатор, определяемый в интерфейсе IDictionary
и позволяющий устанавливать и получать значение по заданному ключу.
В классе SortedList
доступны также открытые свойства, определенные в тех интерфейсах, которые в нем реализуются. Как и в классе Hashtable
, в данном классе особая роль принадлежит двум свойствам, Keys
и Values
, поскольку с их помощью можно получить доступную только для чтения коллекцию ключей или значений из коллекции типа SortedList
. Эти свойства определяются в интерфейсе IDictionary
следующим образом.
public virtual ICollection Keys { get; }
public virtual ICollection Values { get; }
Порядок следования ключей и значений отражает порядок их расположения в коллекции типа SortedList
.
Аналогично коллекции типа Hashtable
, пары "ключ-значение" сохраняются в коллекции типа SortedList
в форме структуры типа DictionaryEntry
, но, как правило, доступ к ключам и значениям осуществляется по отдельности с помощью методов и свойств, определенных в классе SortedList
.
В приведенном ниже примере программы демонстрируется применение класса SortedList
. Это переработанный и расширенный вариант предыдущего примера, демонстрировавшего применение класса Hashtable
, вместо которого теперь используется класс SortedList
. Глядя на результат выполнения этой программы, вы можете сами убедиться, что теперь список полученных значений оказывается отсортированным по заданному ключу.
// Продемонстрировать применение класса SortedList.
using System;
using System.Collections;
class SLDemo {
static void Main() {
// Создать отсортированный список.
SortedList si = new SortedList();
// Добавить элементы в список.
si.Add("здание", "жилое помещение");
si.Add("автомашина", "транспортное средство");
si.Add("книга", "набор печатных слов");
si.Add("яблоко", "съедобный плод");
// Добавить элементы с помощью индексатора,
si["трактор"] = "сельскохозяйственная машина";
// Получить коллекцию ключей.
ICollection с = si.Keys;
// Использовать ключи для получения значений.
Console.WriteLine("Содержимое списка по индексатору.");
foreach(string str in с)
Console.WriteLine(str + ": " + si[str]);