- HashSet lt; T gt; і SortedSet lt; T gt ;. Обидва вони реалізують інтерфейс ISet lt; T gt ;. Клас HashSet lt; T gt; містить невпорядкований список розрізняються елементів, а в SortedSet lt; T gt; елементи впорядковані. [6]
Інтерфейс ISet lt; T gt; надає методи для створення об'єднання декількох множин, перетину множин і визначення, чи є одне безліч надбезліччю або підмножиною іншого. [2]
Нижче перераховані найбільш споживані конструктори, визначені в класі HashSet lt; T gt;:
HashSet () HashSet (IEnumerable lt; T gt; collection)
public HashSet (IEqualityCompare comparer)
public HashSet (IEnumerable lt; T gt; collection, IEqualityCompare comparer)
У першій формі конструктора створюється порожня множина, а в другій формі - безліч, що складається з елементів вказується колекції collection. У третій формі конструктора допускається вказувати спосіб порівняння за допомогою параметра comparer. А в четвертій формі створюється безліч, що складається з елементів вказується колекції collection, і використовується заданий спосіб порівняння comparer. Є також п'ятий форма конструктора даного класу, в якій допускається ініціалізувати безліч послідовно впорядкованими даними.
У цьому класі надається також метод RemoveWhere (), що видаляє з безлічі елементи, що задовольняють заданій умові, або предикату. Крім властивостей, визначених в інтерфейсах, які реалізуються в класі HashSet lt; T gt ;, в нього введено додаткове властивість Comparer, наведене нижче:
IEqualityComparer lt; T gt; Comparer {get; }
Воно дозволяє отримувати метод порівняння для викликає хеш-множини. [4]
Нижче перераховані чотири найбільш часто використовуваних конструкторів, визначених у класі SortedSet lt; T gt;:
public SortedSet () SortedSet (IEnumerable lt; T gt; collection) SortedSet (IComparer comparer) SortedSet (IEnumerable lt; T gt; collection, IComparer comparer)
У першій формі конструктора створюється порожня множина, а в другій формі - безліч, що складається з елементів вказується колекції collection. У третій формі конструктора допускається вказувати спосіб порівняння за допомогою параметра comparer. А в четвертій формі створюється безліч, що складається з елементів вказується колекції collection, і використовується заданий спосіб порівняння comparer. Є також п'ятий форма конструктора даного класу, в якій допускається ініціалізувати безліч послідовно впорядкованими даними.
У цьому класі надається також метод GetViewBetween (), який повертає частину безлічі у формі об'єкта типу SortedSet lt; T gt ;, метод RemoveWhere (), що видаляє з безлічі елементи, що не задовольняють заданій умові, або предикату, а також метод Reverse (), який повертає об'єкт типу IEnumerable lt; T gt ;, який циклічно проходить безліч в зворотному порядку. [6]
Крім властивостей, визначених в інтерфейсах, які реалізуються в класі SortedSet lt; T gt ;, в нього введені додаткові властивості, наведені нижче:
IComparer lt; T gt; Comparer {get; } T Max {get; } T Min {get; }
Властивість Comparer отримує спосіб порівняння для викликає множини. Властивість Мах отримує найбільше значення в безлічі, а властивість Min - найменше значення в безлічі.
Клас SortedDictionary lt; TKey, TValue gt;
Клас SortedDictionary lt; TKey, Tvalue gt; представляє дерево бінарного пошуку, в якому всі елементи відсортовані на основі ключа. Тип ключа повинен реалізувати інтерфейс IComparable lt; TKey gt ;. Якщо тип ключа не сортований, компаратор можна також створити, реалізувавши IComparer lt; TKey gt; і вказавши його як аргумент конструктора сортованого словника. [2]
Класи SortedDictionary lt; TKey, Tvalue gt; і SortedList lt; TKey, TValue gt; мають схожу функціональність. Але оскільки SortedList lt; TKey, TValue gt; реалізований у вигляді списку, заснованого на масиві, a SortedDictionary lt; TKey, Tvalue gt; реалізований як словник, ці класи володіють різними характеристиками:
SortedList lt; TKey, TValue gt; використовує менше пам'яті, ніж SortedDictionary lt; TKey, TValue gt;
SortedDictionary lt; TKey, TValue gt; швидше вставляє і видаляє елементи.
При наповненні колекції відсортованими даними SortedList lt; TKey, TValue gt; працює швидше, якщо при цьому не потрібна зміна ємності. [6]
У класі SortedDictionary lt; TKey, TValue gt; реалізуються інтерфейси IDictionary, IDictionary lt; TKey, TValue gt ;, I...