排序列表,仅仅花费了IComparable (SortedList that just takes

2019-09-18 01:29发布

我有一个接口IScriptItem实现IComparable<IQueueItem> 在我眼里它似乎不够有IComparable ,以便有一个排序的任何物品。 但是,所有我能找到的是字典,哈希表并且实际上SortedTrees SortedLists。

我正在寻找的是一个通用的排序列表需要IComparables。 我是不是找错了地方?

Answer 1:

没有什么内置。 你有一些选择:

  • 使用排序列表与虚拟TValue。
  • 使用列表或数组,并调用List.Sort()或的Array.Sort()在必要时。
  • 写你自己的。
  • 使用第三方库

对于这种特殊的情况下,签出Wintellect的PowerCollections OrderedBag类,它采用了红黑树内部。 其他不错的免费数据结构库包括NGenerics和C5。



Answer 2:

如果我理解正确的话,你想要一个SortedCollection <TValue>中,而不是各种SortedCollection <TKEY的,TValue>中是有。

在.NET 4有一个新SortedSet<T>保持它的项的顺序,但不允许重复类。 否则,你就必须看第三方的选择,像一个马特豪厄尔斯提到。



文章来源: SortedList that just takes IComparable