При добавлении новых элементов в список емкость коллекции типа SortedList
увеличивается автоматически по мере надобности. Так, если текущая емкость коллекции превышается, то она соответственно увеличивается. Преимущество указания емкости коллекции типа SortedList
при ее создании заключается в снижении или полном исключении издержек на изменение размера коллекции. Разумеется, указывать емкость коллекции целесообразно лишь в том случае, если заранее известно, сколько элементов требуется хранить в ней.
В классе SortedList
определяется ряд собственных методов, помимо тех, что уже объявлены в интерфейсах, которые в нем реализуются. Некоторые из наиболее часто используемых методов этого класса перечислены в табл. 25.6. Так, если требуется определить, содержится ли ключ в коллекции типа SortedList
, вызывается метод ContainsKey()
. А если требуется выяснить, хранится ли конкретное значение в коллекции типа SortedList
, вызывается метод ContainsValue()
. Для перечисления содержимого коллекции типа SortedList
служит метод GetEnumerator()
, возвращающий объект типа IDictionaryEnumerator
. Напомним, что IDictionaryEnumerator
— это перечислитель, используемый для перечисления содержимого коллекции, в которой хранятся пары "ключ-значение". И наконец, для получения синхронизированной оболочки, в которую заключается коллекция типа SortedList
, вызывается метод Synchronized()
.
Таблица 25.6. Наиболее часто используемые методы, определенные в классе SortedList
Метод - Описание
public virtual bool ContainsKey(object key) - Возвращает логическое значение true,если в вызывающей коллекции типа SortedListсодержится ключ key ,а иначе — логическое значение false
public virtual bool ContainsValue(object value) - Возвращает логическое значение true,если в вызывающей коллекции типа SortedListсодержится значение value , а иначе — логическое значение false
public virtual object GetBylndex(int index) - Возвращает значение, указываемое по индексу index
public virtual IDictionaryEnumerator GetEnumerator() -Возвращает для вызывающей коллекции типа SortedListперечислитель типа IDictionaryEnumerator
public virtual object GetKey(int index) - Возвращает значение ключа, указываемое по индексу index
public virtual IList GetKeyList() -Возвращает коллекцию типа SortedListс ключами, хранящимися в вызывающей коллекции типа SortedList
public virtual IList GetValueList() -Возвращает коллекцию типа SortedListсо значениями, хранящимися в вызывающей коллекции типа SortedList
public virtual int IndexOfKey(object key) - Возвращает индекс ключа key. Если искомый ключ не обнаружен, возвращается значение -1
public virtual int IndexOfValue(object value) - Возвращает индекс первого вхождения значения value в вызывающей коллекции. Если искомое значение не обнаружено, возвращается значение -1
public virtual void SetBylndex(int index, object value) - Устанавливает значение по индексу index равным значению value
public static SortedList Synchronized(SortedList list) - Возвращает синхронизированный вариант коллекции типа SortedList,передаваемой в качестве параметра list
public virtual void TrimToSize() -Устанавливает значение свойства Capacityравным значению свойства Count
Ключ или значение можно получить разными способами. В частности, для получения значения по указанному индексу служит метод GetByIndex()
, а для установки значения по указанному индексу — метод SetByIndex()
. Для извлечения ключа по указанному индексу вызывается метод GetKey()
, а для получения списка ключей по указанному индексу — метод GetKeyList()
. Кроме того, для получения списка всех значений из коллекции служит метод GetValueList()
. Для получения индекса ключа вызывается метод IndexOfKey()
, а для получения индекса значения — метод IndexOfValue()
. Безусловно, в классе SortedList
также поддерживается индексатор, определяемый в интерфейсе IDictionary
и позволяющий устанавливать и получать значение по заданному ключу.
В классе SortedList
доступны также открытые свойства, определенные в тех интерфейсах, которые в нем реализуются. Как и в классе Hashtable
, в данном классе особая роль принадлежит двум свойствам, Keys
и Values
, поскольку с их помощью можно получить доступную только для чтения коллекцию ключей или значений из коллекции типа SortedList
. Эти свойства определяются в интерфейсе IDictionary
следующим образом.
Читать дальше