分类数据库<;T>;对于C#

分类数据库<;T>;对于C#,c#,collections,generic-collections,C#,Collections,Generic Collections,我正在寻找C#的SortedBag实现,我的用例如下:我有一系列对象正在使用自定义IComparer实现进行估计和排序,问题是完全不同的对象可能会产生相同的估计,当我尝试使用C#的默认排序集合(如SortedSet)时,SordDead字典实现,我不能用相同的估计将几个对象插入到这些集合中,因为集合认为这些对象是相等的,并且拒绝插入它们。我需要一个SortedBag实现,它有O(log(N))用于插入和删除,因为我非常积极地进行插入/删除 有没有人偶然发现这样的实施 谢谢大家! 编辑 似乎我在寻

我正在寻找C#的SortedBag实现,我的用例如下:我有一系列对象正在使用自定义IComparer实现进行估计和排序,问题是完全不同的对象可能会产生相同的估计,当我尝试使用C#的默认排序集合(如SortedSet)时,SordDead字典实现,我不能用相同的估计将几个对象插入到这些集合中,因为集合认为这些对象是相等的,并且拒绝插入它们。我需要一个SortedBag实现,它有O(log(N))用于插入和删除,因为我非常积极地进行插入/删除

有没有人偶然发现这样的实施

谢谢大家!

编辑
似乎我在寻找优先级队列而不是SortedBag…

插入和删除中的
TreeBag
应该是
O(log(n))
,否则,它的
OrderedBag

排序会使袋子的概念失效。@DanielA.White不,它不会……您可以挖掘
SortedSet
实现的源代码,只需稍微修改它以处理重复项。应该已经有了检查重复项的案例。如果副本之间的顺序无法定义,只需删除该复选框,瞧,您有一个
SortedBag
。您想做什么就做什么?
SortedDictionary
可能就足够了-先按键查找,然后再附加到列表中(如果已经有)…谢谢,C5适合我!谢谢Wintellect的
OrderedBag
似乎性能更好。