Как скопировать элементы из списка в стек без использования цикла
У меня есть стек и список. Мне нужно скопировать все элементы из списка в стек без использования циклов i.e for, foreach и т.д.
Рекомендуем ли это сделать?
Ответы
Ответ 1
Вы можете создать стек из всего, что IEnumerable
var myStack = new Stack<MyObjectType>(myList);
См. MSDN: http://msdn.microsoft.com/en-us/library/76atxd68.aspx
Однако конструктор стека будет использовать цикл внутри, вы просто не видите его.
Ответ 2
new Stack<T>(myListOfT)
Альтернативно (без циклов)
myStack.Push(myList[0]);
myStack.Push(myList[1]);
myStack.Push(myList[2]);
myStack.Push(myList[3]);
...
Это будет довольно утомительно. Что случилось с циклами?
Ответ 3
Если вы хотите, чтобы элементы в том же порядке, в каком они отображаются в вашем списке,
затем переверните список, прежде чем создавать из него стек.
var myStack = new Stack<MyObjectType>(myList.Reverse());