仅接受 IComparable的 SortedList

发布于 2024-07-26 16:58:01 字数 236 浏览 3 评论 0原文

我有一个实现 IComparable 的接口 IScriptItem。 在我看来,拥有 IComparable 项似乎足以对任何内容进行排序。 但我能找到的只是字典、哈希表和排序列表,它们实际上是排序树。

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

I have an interface IScriptItem that implements IComparable<IQueueItem>.
In my eyes it would seem enough to have IComparable items in order to have a sorted anything. But all I can find is Dictionaries, Hashtables and SortedLists that are actually SortedTrees.

What I'm looking for is a sorted generic list that takes IComparables.
Am I looking in the wrong places?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

迟月 2024-08-02 16:58:01

没有任何内置的东西。 您有一些选择:

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

对于这种特殊情况,请查看 Wintellect PowerCollections OrderedBag 类,该类在内部使用红黑树。 其他好的免费数据结构库包括 NGenerics 和 C5。

There's nothing built-in. You have some options:

  • Use SortedList with a dummy TValue.
  • Use a list or array and call List.Sort() or Array.Sort() when necessary.
  • Write your own.
  • Use a third party library

For this particular case check out Wintellect PowerCollections OrderedBag class, which uses a red-black tree internally. Other good free data structure libraries include NGenerics and C5.

同展鸳鸯锦 2024-08-02 16:58:01

如果我理解正确的话,你想要一个 SortedCollection< T值> 而不是各种 SortedCollection< TKey、TValue> 就在那里。

在 .NET 4 中,有一个新的 SortedSet类,保持其项目有序,但不允许重复。 否则,您将不得不考虑第三方选项,就像马特·豪厄尔斯提到的那样。

If I understand correctly, you want an SortedCollection< TValue> instead of the various SortedCollection< TKey, TValue> that are there.

In .NET 4 there is a new SortedSet<T> class that keeps its items in order, but doesn't allow duplicates. Otherwise you'll have to look at 3rd party options, like the one Matt Howells mentions.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文