.NET中是否有排序的集合类型?

Ecl*_*pse 25 .net c# sorting containers

我正在寻找一个能够保持所有物品整齐的容器.我查看了SortedList,但这需要一个单独的密钥,并且不允许重复密钥.我也可以使用未分类的容器,并在每次插入后显式排序.

用法:

  • 偶尔插入
  • 经常遍历顺序
  • 理想情况下,不使用与实际对象分开的键,使用比较函数进行排序.
  • 期望对等效对象进行稳定的排序,但不是必需的.
  • 不需要随机访问.

我意识到我可以建立一个平衡的树结构,我只是想知道框架是否已经包含这样的野兽.

Jer*_*ark 20

您可能想看一下Wintellect Power Collections.它可以在CodePlex上获得,并且包含很多非常有用的集合.项目中的OrderedBag集合正是您正在寻找的.它主要使用红黑树来提供非常有效的排序.

  • 在鲍勃·迪伦不朽的话语中......他们的时代正在发生变化.所以我只想补充一点,SortedSet <T>现在是4.0框架的一部分.SortedSet也实现为红黑树. (12认同)
  • 开启者想要插入等效的对象,因此SortedSet <T>不能作为选项. (3认同)

naw*_*fal 12

只是为了让EBarr的评论作为答案,SortedSet<T>从.NET 4.0开始.当然它是一个集合,这意味着你不能有重复.