我有一个IScriptItem
实现IComparable<IQueueItem>
. 在我看来,拥有物品似乎足以对IComparable
任何东西进行分类。但我能找到的只是字典、哈希表和排序列表,它们实际上是排序树。
我正在寻找的是一个采用 IComparables 的排序通用列表。我找错地方了吗?
我有一个IScriptItem
实现IComparable<IQueueItem>
. 在我看来,拥有物品似乎足以对IComparable
任何东西进行分类。但我能找到的只是字典、哈希表和排序列表,它们实际上是排序树。
我正在寻找的是一个采用 IComparables 的排序通用列表。我找错地方了吗?
没有什么内置的。你有一些选择:
对于这种特殊情况,请查看 Wintellect PowerCollections OrderedBag 类,该类在内部使用红黑树。其他不错的免费数据结构库包括 NGenerics 和 C5。
如果我理解正确,您需要一个 SortedCollection< TValue> 而不是那里的各种 SortedCollection< TKey, TValue> 。
在 .NET 4 中,有一个新SortedSet<T>
类可以保持其项目有序,但不允许重复。否则,您将不得不查看第 3 方选项,就像 Matt Howells 提到的那样。