2
我正在寻找像树一样的东西。我们不断插入已经排序的集合中。我们希望获得最低和最高价值。我们不需要任何钥匙,只需要价值。我无法从.Net找到任何树结构,我看不到任何其他看起来像我正在寻找的东西。在.Net中是否存在仅支持排序值的集合。钥匙不需要?
我正在寻找像树一样的东西。我们不断插入已经排序的集合中。我们希望获得最低和最高价值。我们不需要任何钥匙,只需要价值。我无法从.Net找到任何树结构,我看不到任何其他看起来像我正在寻找的东西。在.Net中是否存在仅支持排序值的集合。钥匙不需要?
在.NET 4.0中有SortedSet - 它看起来像会做你想做的,它有Min
和Max
属性。
.NET 3.5具有HashSet
,但只有在平等,而不是订货交易。
嗨,乔恩。不幸的是没有在.NET 4.0上。计划是尽快到达那里,但同时我们必须考虑其他事情。我已经遇到了HashSet,但正如你所说,它不支持排序。我有一个想法,但我不知道这是多么糟糕的想法。如果我们使用SortedList并将该值存储为键并将空值存储为值,会怎么样?除了感觉不对,我想不出任何理由为什么这是一个坏主意。 – uriDium 2010-05-17 09:58:24
@uriDium:您可能希望使用SortedDictionary而不是SortedList - 基本上'SortedDictionary' *是一个树形结构,所以它对随机插入效率更高,但如果您添加排序项目则效率更低。查看文档以获得更详细的比较。你可能想用自己的类型来包装它,所以当你开始使用.NET 4时,你可以顺利地移动到'SortedSet'。基本上它应该可以工作,但正如你所说的那样很丑陋。 – 2010-05-17 10:05:24
感谢您的意见。我们已经完成了对两个集合的测试,并且它会出现排序列表,稍微为我们的场景和数据的形状执行sorteddictionary。滥用收藏绝对会感到丑陋。感觉像我应该实施我们自己的树。不应该太难。再次感谢评论。 – uriDium 2010-05-17 10:35:33