Класс SortedSet
представляет собой новую разновидность коллекции, введенную в версию 4.0 среды .NET Framework. В нем поддерживается коллекция, реализующая отсортированное множество. В классе SortedSet
реализуются интерфейсы ISet
, а также IDeserializationCallback
. В коллекции типа SortedSet
реализуется множество, все элементы которого являются уникальными. Иными словами, дубликаты в таком множестве не допускаются. В классе SortedSet
определяется полный набор операций с множеством, определенных в интерфейсе ISet
, включая пересечение, объединение и разноименность. Благодаря тому что все элементы коллекции типа SortedSet
сохраняются в отсортированном порядке, класс SortedSet
оказывается идеальным средством для работы с отсортированными множествами объектов. Коллекция типа SortedSet
имеет динамический характер и расширяется по мере необходимости, чтобы вместить все элементы, которые должны в ней храниться.
Ниже перечислены четыре наиболее часто используемые конструктора, определенных в классе SortedSet
.
public SortedSetO
public SortedSet(IEnumerable
public SortedSet(IComparer comparer)
public SortedSet(IEnumerable
В первой форме конструктора создается пустое множество, а во второй форме — множество, состоящее из элементов указываемой коллекции
В классе SortedSet
реализуется интерфейс ISet
, а следовательно, в нем предоставляется полный набор операций со множествами. В этом классе предоставляется также метод GetViewBetween()
, возвращающий часть множества в форме объекта типа SortedSet
, метод RemoveWhere()
, удаляющий из множества элементы, не удовлетворяющие заданному условию, или предикату, а также метод Reverse()
, возвращающий объект типа IEnumerable
, который циклически проходит множество в обратном порядке.
Помимо свойств, определенных в интерфейсах, которые реализуются в классе SortedSet
, в него введены дополнительные свойства, приведенные ниже.
public IComparer
public T Max { get; }
public T Min { get; }
Свойство Comparer
получает способ сравнения для вызывающего множества. Свойство Мах
получает наибольшее значение во множестве, а свойство Min
— наименьшее значение во множестве.
В качестве примера применения класса SortedSet
на практике просто замените обозначение HashSet
на SortedSet
в исходном коде программы из предыдущего подраздела, посвященного коллекциям типа HashSet
.
Параллельные коллекции
В версию 4.0 среды .NET Framework добавлено новое пространство имен System.Collections.Concurrent. Оно содержит коллекции, которые являются потокобезопасными и специально предназначены для параллельного программирования. Это означает, что они могут безопасно использоваться в многопоточной программе, где возможен одновременный доступ к коллекции со стороны двух или больше параллельно исполняемых потоков. Ниже перечислены классы параллельных коллекций.
Параллельная коллекция - Описание
BlockingCollection
ConcurrentBag
ConcurrentDictionary
ConcurrentQueue
ConcurrentStack