在C#中是否有等效的std :: set?

Dan*_*vil 14 c#

我想要一个容器

StdStyleSet<A>
Run Code Online (Sandbox Code Playgroud)

class A : IComparable<A> { ... }
Run Code Online (Sandbox Code Playgroud)

它满足std :: set的属性.这尤其是:

  • 它们所依赖的元素是关键
  • 在插入时自动排序

tva*_*son 15

SortedSet<T>:请参阅文档 - 虽然从技术上讲,它位于.NET Framework中.

对于早期版本,您可以使用HashSet并使用LINQ进行排序,如果您主要以有序方式使用集合,则不理想.或者,您可以使用SortedDictionary<TKey,TValue>带值的a Object并将元素存储在键中,并为值赋值.

  • 这是在.NET 4 ..他们花了足够长的时间. (4认同)
  • @Danvil - 您可以使用HashSet并使用LINQ处理任何排序,或使用SortedDictionary并为值存储空值,即仅使用键. (2认同)