.NET Set Generic?

голоса
10

Есть ли общий контейнер реализации «набор» поведение в .NET?

Я знаю , что я мог бы просто использовать Dictionary<T, Object>(и , возможно , добавить в nullsкачестве значений), потому что его клавиши действуют как набор, но мне было интересно , если есть что - то готовое.

Задан 09/12/2008 в 20:21
источник пользователем
На других языках...                            


3 ответов

голоса
19

HashSet<T> в .NET 3.5

Ответил 09/12/2008 в 20:27
источник пользователем

голоса
3

Я использую Iesi.Collections. Пространство имен , которое приходит с NHibernate (документы здесь ) - может быть , стоит обратить внимание , если вы находитесь в .NET <3,5

Ответил 09/12/2008 в 20:31
источник пользователем

голоса
1

Введенный в .NET 3.5: HashSet<T>(смотри ниже).

Введенный в .NET 4.0: ISet<T>:

Предоставляет базовый интерфейс для абстракции множеств. Этот интерфейс предоставляет методы для реализации наборов, которые представляют собой наборы, которые имеют уникальные элементы и конкретные операции.

Интерфейс имеет две реализации в .NET 4+ BCL:

  • HashSet<T>:

    ... предоставляет набор операций высокой производительности. Набор представляет собой набор, который не содержит повторяющиеся элементы, и элементы которого находятся в произвольном порядке

  • SortedSet<T>:

    Представляет коллекцию объектов, которая поддерживается в отсортированном порядке. SortedSet (Of T) поддерживает порядок сортировки, как элементы вставлены и удалены без влияния на производительность. Повторяющиеся элементы не допускаются.

FWIW: Там же под пространством имен . Его единственная цель , как представляется, использование в реализации .internal class TreeSet<T>: SortedSet<T>System.Collections.Generic
SortedDictionary<TKey, TValue>

Ответил 02/10/2013 в 17:06
источник пользователем

Cookies help us deliver our services. By using our services, you agree to our use of cookies. Learn more