我们使用堆栈为用户提供一个简单的“后退”按钮。我们将集合推入堆栈并在他回击时再次弹出它们。
今天我们想稍微扩展一下。当我们将一个集合压入堆栈时,我们希望在集合旁边存储一个整数。然后,当我们查看堆栈时,我们想要检索集合加上它的整数。
将我们的集合 PLUS THE INTEGER 推入堆栈的最佳方式是什么?
我们应该为集合加整数定义一个结构或类吗?还是其他方式?
我们使用堆栈为用户提供一个简单的“后退”按钮。我们将集合推入堆栈并在他回击时再次弹出它们。
今天我们想稍微扩展一下。当我们将一个集合压入堆栈时,我们希望在集合旁边存储一个整数。然后,当我们查看堆栈时,我们想要检索集合加上它的整数。
将我们的集合 PLUS THE INTEGER 推入堆栈的最佳方式是什么?
我们应该为集合加整数定义一个结构或类吗?还是其他方式?
您不需要为此创建新类。您可以像这样简单地将您的值添加到堆栈中;
stack.Push(new KeyValuePair<int, Collection>(yourInteger, yourCollection));
让他们像这样;
KeyValuePair<int, Collection> valueYouWant = stack.Pop();
valueYouWant.Key --> Your integer
valueYouWant.Value --> Your collection
最简单且开箱即用的解决方案是使用整数扩展当前容器:
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();