我们使用Stack为用户提供简单的“后退”按钮。我们将集合推入堆栈并在他回击时将其弹出。
今天我们想稍微扩展一下。当我们将一个集合推入堆栈时,我们希望在集合旁边存储一个整数。然后,当我们查看堆栈时,我们想要检索集合PLUS的整数。
什么是推动我们的收藏的最佳方式将整数推入堆栈?
我们应该为集合和整数定义一个Struct或Class吗?或者其他一些方式?
答案 0 :(得分:1)
最简单和开箱即用的解决方案是使用整数扩展当前容器:
public class StackElement : CustomerCollection
{
public int Version {get; set;}
}
或制作带整数的合成:
public class StackElement
{
public CustomerCollection Customers {get; set;}
public int Version {get; set;}
}
然后像使用堆栈中的任何其他东西一样使用它:
Stack<StackElement> stack = new Stack<StackElement>();
stack.Push(...)
var stackElement = stack.Pop();
答案 1 :(得分:1)
您不需要为此目的创建新类。您可以像这样简单地将值添加到堆栈中;
stack.Push(new KeyValuePair<int, Collection>(yourInteger, yourCollection));
让他们这样;
KeyValuePair<int, Collection> valueYouWant = stack.Pop();
valueYouWant.Key --> Your integer
valueYouWant.Value --> Your collection