是否有一个通用容器在.NET中实现'set'行为?
我知道我可以使用Dictionary<T, Object>
(并可能添加nulls
作为值),因为它的键作为一个集合,但我很好奇是否有现成的东西。
答案 0 :(得分:19)
HashSet<T>
答案 1 :(得分:3)
我使用Iesi.Collections。 NHibernate附带的命名空间(docs here) - 如果你在.NET中,也许值得考虑&lt; 3.5
答案 2 :(得分:1)
在.NET 3.5中引入:HashSet<T>
(见下文)。
在.NET 4.0中引入:ISet<T>
:
提供集合抽象的基本接口。这个 interface提供了实现集合的方法 具有独特元素和特定操作的集合。
该接口在.NET 4+ BCL中有两个实现:
...提供高性能设置操作。集合是一个集合 不包含重复元素,其元素为no 特别订单
表示按排序顺序维护的对象集合。 SortedSet(Of T)在插入元素时维护排序顺序 删除而不影响性能。重复的元素不是 允许的。
FWIW:名称空间internal
下还有 class TreeSet<T>: SortedSet<T>
System.Collections.Generic
。
它的唯一目的似乎是SortedDictionary<TKey, TValue>
的实现中的用法。