.NET通用集?

时间:2008-12-09 19:21:36

标签: c# .net generics collections set

是否有一个通用容器在.NET中实现'set'行为?

我知道我可以使用Dictionary<T, Object>(并可能添加nulls作为值),因为它的键作为一个集合,但我很好奇是否有现成的东西。

3 个答案:

答案 0 :(得分:19)

.NET 3.5中的

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中有两个实现:

  • HashSet<T>

      

    ...提供高性能设置操作。集合是一个集合   不包含重复元素,其元素为no   特别订单

  • SortedSet<T>

      

    表示按排序顺序维护的对象集合。   SortedSet(Of T)在插入元素时维护排序顺序   删除而不影响性能。重复的元素不是   允许的。

FWIW:名称空间internal下还有 class TreeSet<T>: SortedSet<T> System.Collections.Generic
它的唯一目的似乎是SortedDictionary<TKey, TValue>的实现中的用法。