问题描述
|
我有一个堆栈和一个列表。我需要将所有项目从列表复制到堆栈而不使用循环,即foreach ..等
有推荐的方法吗?
解决方法
您可以从IEnumerable的任何内容创建堆栈
var myStack = new Stack<MyObjectType>(myList);
请参阅MSDN:http://msdn.microsoft.com/en-us/library/76atxd68.aspx
但是,堆栈构造函数将在内部使用循环,只是看不到它。
,new Stack<T>(myListOfT)
替代地(无循环)
myStack.Push(myList[0]);
myStack.Push(myList[1]);
myStack.Push(myList[2]);
myStack.Push(myList[3]);
...
这将变得非常乏味。循环有什么问题?
,如果您要按照项目在列表中显示的顺序来弹出项目,
然后反转列表,然后再从中创建堆栈。
var myStack = new Stack<MyObjectType>(myList.Reverse());