我有一个列表和一个字典组合,其中我的字典中包含一个int值,该值基本上是列表中的位置。像这样:
Dictionary = new Dictionary<Vector3, int>();
List = new List<Node>();
//getting an item from the list by position
return List[Dictionary[myPosition]];
问题是我在列表中添加/删除因此项目的索引位置正在发生变化,这在极少数情况下会导致2个具有相同索引位置的项目,因为它过于复杂以更新整个字典以减少每个项目& #39;如果我删除一个项目,则索引为1.
所以我需要一些其他的字典链接到节点,所以我的查找是 O(1)。
此时我有什么选择来实现这一目标?我试图避免 O(n)使用for循环按位置查找项目,这是我试图避免的最后一种情况。
那么我该怎么办呢?
答案 0 :(得分:3)
为什么不直接将字典映射到您正在寻找的价值?:
Dictionary = new Dictionary<Vector3, Node>();
没有索引,没有额外的步骤,直接访问。