Как скопировать элементы из списка в стек без использования цикла

У меня есть стек и список. Мне нужно скопировать все элементы из списка в стек без использования циклов 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());