我需要一个数据结构,可以通过与对象关联的浮动键对对象进行排序,从低到低的在前。问题是键代表成本,所以经常有重复,我不关心这一点,因为如果两个具有相同的成本,我只会抓住第一个,因为它没有区别,问题是编译器抱怨。
是否有一种数据结构的行为方式相同但允许重复的键?
编辑-我仍然需要重复项,因为如果一个结果是死胡同,我会抓住下一个(它们是 a* 搜索中的节点)
所以需要明确的是,它需要允许按顺序排序的重复键。
你写:
相当于一个允许重复键的字典
我需要一个数据结构,可以通过与对象关联的浮动键对对象进行排序,从低到低的在前。
字典不会保留按键排序的项目,因此您正在查找的结构实际上并不等同于Dictionary
根本不。你想要的是类似于SortedList
or SortedDictionary
但它应该允许重复的键。
.NET 中不存在这样的类。不过,您有几个选择:
- Use
SortedDictionary<double, List<TValue>>
如果您想存储与某个键关联的所有值,即使您usually只需要第一个。第一次插入键时,创建一个新列表并将值添加到列表中。当插入已经存在的键时,获取列表并将值追加到列表中。
-
Your edit means that this approach does not apply to your situation.
Use SortedDictionary<double, TValue>
and check for duplicates before inserting. Only the first value for each key will be stored, so unlike the above approach, you can't access the second value at all with this method.
- 找到一个第三方集合库,其中有一个类可以满足您的需求。
Related
- SortedList 和 SortedDictionary 有什么区别? https://stackoverflow.com/questions/935621/whats-the-difference-between-sortedlist-and-sorteddictionary
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)