我无法找到正确的 C# 数据结构。我正在寻找优先级列表。它需要具备以下条件:
- 只有一个项目具有给定的优先级
- 必须始终保持分类
- 能够将项目添加到列表的末尾 -- prorityList.Add(item)
- 能够以给定的优先级插入项目——priorityList.Add(3, item)
- 能够使用优先级访问任何元素——priorityList[3]
- 能够以给定的优先级删除项目——priorityList.RemoveAt(3)
- 当添加或删除一个项目时,列表的其余部分必须适当地向上或向下移动——例如,如果第三个项目被删除,第四个项目变成第三个项目,第五个项目变成第四个项目,等等。
C# 的 SortedList 看起来很有希望,但它无法处理以已存在的优先级插入或以给定优先级删除元素(在两种情况下都适当地移动列表)。