0

我们使用堆栈为用户提供一个简单的“后退”按钮。我们将集合推入堆栈并在他回击时再次弹出它们。

今天我们想稍微扩展一下。当我们将一个集合压入堆栈时,我们希望在集合旁边存储一个整数。然后,当我们查看堆栈时,我们想要检索集合加上它的整数。

将我们的集合 PLUS THE INTEGER 推入堆栈的最佳方式是什么?

我们应该为集合加整数定义一个结构或类吗?还是其他方式?

4

2 回答 2

1

您不需要为此创建新类。您可以像这样简单地将您的值添加到堆栈中;

stack.Push(new KeyValuePair<int, Collection>(yourInteger, yourCollection));

让他们像这样;

KeyValuePair<int, Collection> valueYouWant = stack.Pop();

valueYouWant.Key   --> Your integer
valueYouWant.Value --> Your collection
于 2013-01-02T11:47:34.673 回答
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();
于 2012-12-31T09:36:16.793 回答