Клас SortedList
Призначення класу SortedList — колекція для зберігання пар "ключ-значення", упорядкована за ключем.
Загальне уявлення про клас SortedList можна отримати, переглянувши код програми та проаналізувавши її виведенням для словника, у якому і ключі, і значення мають тип string.
У поданому далі описі:
-
TKey — тип ключа;
-
TValue — тип значення;
-
у дужках () чи <> вказано тип параметра.
Зауваження-
Доступ до елемента SortedList можна отримати або за його ключем, або за його індексом.
-
Не рекомендують використовувати цей клас для нової розробки. Натомість рекомендують використовувати універсальний клас System.Collections.Generic.SortedList<TKey,TValue>.
-
SortedList внутрішньо підтримує два масиви для зберігання елементів списку: один масив ключів, інший масив для пов'язаних значень.
-
Ключ не може бути null, але значення може бути.
-
Місткість — це кількість елементів, які можна розташувати в об'єкті SortedList. При додаванні елементів її буде автоматично збільшено при необхідності шляхом перерозподілу пам'яті. Місткість можна зменшити шляхом виклику TrimToSize або явного завдання значення властивості Capacity.
-
Лише для платформи .NET Framework. Для великих об'єктів можна збільшити максимальну ємність до 2 мільярдів елементів у 64-розрядній системі, задавши в середовищі виконання атрибуту enabled елемента gcAllowVeryLargeObjects конфігурації значення true.
-
Елементи SortedList упорядковують за ключами або відповідно до певного втілення IComparer, зазначеного при створенні, або за втіленням IComparable, наданої ключами. У будь-якому випадку — без дублювання ключів.
-
При додаванні елемента його буде вставлено в SortedList правильному порядку упорядкування й індексування коригується відповідним чином. При видаленні елемента індексування також коригується відповідним чином.
-
Операції з об'єктом SortedList як правило, виконуються повільніше, ніж операції з об'єктом Hashtable через упорядкування. Але SortedList забезпечує більшу гнучкість, надаючи доступ до значень через пов'язані ключі або індекси.
-
Індекси у цій колекції відраховують від нуля.
-
Оператор foreach повертає об'єкт типу елементів у колекції. Кожен елемент об'єкта SortedList є парою "ключ-значення", тому тип елемента не є типом ключа або типом значення. Скоріше, тип елемента — DictionaryEntry.
-
Оператор foreach є оболонкою для перелічувача, яка дозволяє виконувати лише читання з колекції, а не запис до колекції.
Конструктори-
SortedList() — ініціалізує порожній представник класу з початковою ємністю як усталено, упорядкований згідно з інтерфейсом IComparable, втіленим для кожного ключа.
-
SortedList(IComparer) — ініціалізує порожній екземпляр класу з початковою ємністю як усталено, упорядкований відповідно до зазначеного інтерфейсу IComparer.
-
SortedList(IComparer, Int32) — ініціалізує порожній екземпляр класу з указаною початковою ємністю, упорядкований згідно з указаним інтерфейсом IComparer.
-
SortedList(IDictionary) — ініціалізує представник класу, що містить елементи, скопійовані з указаного словника, з ємністю, що дорівнює кількості скопійованих елементів, і впорядкований згідно з втіленням інтерфейсу IComparable кожного ключа.
-
SortedList(IDictionary, IComparer) — ініціалізує новий представник класу, що містить елементи, скопійовані з указаного словника з ємністю, що дорівнює кількості скопійованих елементів, і упорядкований згідно з указаним інтерфейсом IComparer.
-
SortedList(Int32) — ініціалізує порожній представник класу з указаною ємністю, упорядкований згідно з інтерфейсом IComparable, який втілено для кожного ключа.
Властивості
-
Capacity — ємність — кількість елементів, які може містити об'єкт.
-
Count — кількість наявних пар ключ-значення.
-
IsFixedSize — true, якщо об'єкт має фіксований розмір. Інакше — false.
-
IsReadOnly — true, якщо oб'єкт доступний тільки для читання. Інакше — false.
-
IsSynchronized — true, якщо доступ до об'єкта синхронізовано (він є потокобезпечним).
-
Item[TKey] — повертає або задає значення, пов'язане із зазначеним ключем.
-
Keys — упорядкована колекція ключів.
-
SyncRoot — об'єкт, який дозволяє синхронізувати доступ до поточного об'єкта SortedList.
-
Values — колекція значень.
Методи-
Add(Object, Object) — додає пару зі вказаними ключем і значенням.
-
Clear() — пидаляє всі елементи.
-
Clone() — створює неповну копію.
-
Contains(Object) — повертає true при наявності вказаного ключа, інакше повертає false.
-
ContainsKey(Object) — повертає true при наявності вказаного ключа, інакше повертає false.
-
ContainsValue(Object) — повертає true при наявності вказаного значення, інакше повертає false.
-
CopyTo(Array, Int32) — копіює елементи в одновимірний масив Array, починаючи з вказаного значення індексу масиву.
-
Equals(Object) — визначає, чи вказаний об'єкт дорівнює поточному об'єкту (успадковано від Object).
-
GetByIndex(Int32) — повертає значення з указаним індексом.
-
GetEnumerator() — повертає засіб переліку.
-
GetHashCode() — хеш-функція як усталено (успадковано від Object).
-
GetKey(Int32) — повертає ключ з указаним індексом.
-
GetKeyList() — повертає список ключів.
-
GetType() — повертає об'єкт Type для поточного представника (успадковано від Object).
-
GetValueList() — повертає список значень.
-
IndexOfKey(Object) — повертає індекс, рахуючи від нуля, для вказаного ключа.
-
IndexOfValue(Object) — повертає індекс першого входження, рахуючи від нуля, вказаного значення.
-
MemberwiseClone() — створює неповну копію об'єкта (успадковано від Object).
-
Remove(Object) — видаляє пару з указаним ключем.
-
RemoveAt(Int32) — видаляє пару з указазначеним індексом.
-
SetByIndex(Int32, Object) — замінює значення за вказаним індексом.
-
Synchronized(SortedList) — повертає синхронізовану (потокобезпечну) оболонку об'єкта SortedList.
-
ToString() — повертає рядок, що становить поточний об'єкт (успадковано від Object).
-
TrimToSize() — встановлює ємність, що дорівнює фактичної кількості елементів.
Додаткові дані про явні втілення інтерфейсу, методи розширення потокобезпечність подано на сторінці сайту learn.microsoft.com.