【发布时间】:2011-01-15 19:35:12
【问题描述】:
我尝试在我的 Windows 窗体应用程序中实现重做撤消。
我建立了一个链表,链表的每一个条目都是一个类,它保存了表单中所有元素的状态。
每次点击保存按钮,都会在此列表中插入表单元素的最后状态。
当用户单击撤消按钮时,我想获取列表的输入(最后一个之前) 并加载它。
我不知道从链表中获取元素之前的简单方法是什么?
我的代码如下所示:
public class SaveState {
public int comboBox1;
public int comboBox2;
..........
public SaveState() {
.......
}
}
LinkedList<SaveState> RedoUndo = new LinkedList<SaveState>();
# in save function
var this_state = new SaveState();
this_state = getAllState();
RedoUndo.AddLast(this_state);
# when click undo
var cur_state = new SaveState();
# this lines dont work !!!!!!!!!
int get = RedoUndo.Count - 1;
cur_state = RedoUndo.Find(get);
setAllState(cur_state);
【问题讨论】:
-
为什么不使用堆栈而不是链表?
标签: c# linked-list