可观察的堆栈和队列
我正在寻找一个INotifyCollectionChanged
的实施Stack
和Queue
。我可以自己动手,但我不想重新发明轮子。
回答:
使用堆栈和队列(几乎按定义),您只能访问堆栈的顶部或队列的头部。这就是它们与区别的地方List
。(因此,这就是为什么您找不到一个的原因)
为了回答您可以编写自己的问题的方法,我可以通过从派生 ObservableCollection
,然后在将实现Push
为Insert
at偏移量0
的堆栈中实现(并以pop的形式返回索引0,然后再RemoveAt
索引0);或者使用队列,您可以Add
将列表Enqueue
拖到的末尾,然后像抓取堆栈一样抓取并删除第一个项目Dequeue
。的Insert
,Add
并且RemoveAt
行动将在底层调用ObservableCollection
等原因CollectionChanged
被解雇的事件。
您可能还说您只是想绑定或在您应该有权访问的一项发生更改时收到通知。您将再次创建从Stack或Queue派生的自己的类,并在以下情况下手动触发CollectionChanged事件:
- 东西被推到堆栈上或从堆栈中弹出
- 某些东西从队列中出队
- 队列为空时,队列中有排队的东西
以上是 可观察的堆栈和队列 的全部内容, 来源链接: utcz.com/qa/399168.html