我在寻找合适的C#数据结构,需要一个PriorityList,需要具备以下功能:
- 给定优先级只能有一个项 - 必须始终保持排序状态 - 可以将项添加到列表末尾 - prorityList.Add(item) - 可以在给定优先级处插入项 - priorityList.Add(3, item) - 可以使用优先级访问任何元素 - priorityList[3] - 可以删除给定优先级的项 - priorityList.RemoveAt(3) - 当添加或删除项时,列表的其余部分必须适当地上移或下移 - 例如,如果删除第三个项,则第四个项变为第三个项,第五个项变为第四个项等。
C#的SortedList看起来很有前途,但是它无法处理在已有优先级处插入或删除元素(在这两种情况下,列表必须适当地移动)。
- 给定优先级只能有一个项 - 必须始终保持排序状态 - 可以将项添加到列表末尾 - prorityList.Add(item) - 可以在给定优先级处插入项 - priorityList.Add(3, item) - 可以使用优先级访问任何元素 - priorityList[3] - 可以删除给定优先级的项 - priorityList.RemoveAt(3) - 当添加或删除项时,列表的其余部分必须适当地上移或下移 - 例如,如果删除第三个项,则第四个项变为第三个项,第五个项变为第四个项等。
C#的SortedList看起来很有前途,但是它无法处理在已有优先级处插入或删除元素(在这两种情况下,列表必须适当地移动)。