C#优先列表

Jak*_*ake 4 c# data-structures

我找不到合适的C#数据结构.我正在寻找PriorityList.它需要具备以下条件:

  • 只有一个项目具有优先级
  • 必须始终保持排序
  • 能够将项目添加到列表的末尾 - prorityList.Add(item)
  • 能够以给定的优先级插入项目 - priorityList.Add(3,item)
  • 能够使用优先级访问任何元素 - priorityList [3]
  • 能够以给定的优先级删除项目 - priorityList.RemoveAt(3)
  • 添加或删除项目时,列表的其余部分必须适当地向上或向下移动 - 例如,如果删除第三项,则第四项成为第三项,第五项成为第四项,等等.

C#的SortedList看起来很有前途,但是它不能处理已经存在的优先级插入或者以给定的优先级移除元素(在两种情况下都适当地移动列表).

小智 8

如果你只是使用一个标准List<T>,它可以为你提供你所要求的一切priority == index.