使用堆栈和队列(几乎按定义),您只能访问堆栈的顶部或队列的头部。这就是它们与区别的地方List
。(因此,这就是为什么您找不到一个的原因)
为了回答您可以编写自己的问题的方法,我可以通过从派生 ObservableCollection
,然后在将实现Push
为Insert
at偏移量0 的堆栈中实现(并以pop的形式返回索引0,然后再RemoveAt
索引0);或者使用队列,您可以Add
将列表Enqueue
拖到的末尾,然后像抓取堆栈一样抓取并删除第一个项目Dequeue
。的Insert
,Add
并且RemoveAt
行动将在底层调用ObservableCollection
等原因CollectionChanged
被解雇的事件。
您可能还说您只是想绑定或在您应该有权访问的一项发生更改时收到通知。您将再次创建从Stack或Queue派生的自己的类,并在以下情况下手动触发CollectionChanged事件: