12
votes

Comment copier des éléments de la liste pour empiler sans utiliser de boucle

J'ai une pile et une liste. J'ai besoin de copier tous les éléments de la liste à la pile sans utiliser des boucles I.e pour, foreach .. etc.

Y a-t-il une façon recommandée de le faire?


5 commentaires

Pourquoi avez-vous besoin pour le faire sans utiliser de boucles?


En Java, vous pouvez le faire par {liste B = nouvelle arraylist (A); Collections.copy (b, a);}


Cela ressemble à des devoirs ou à une question d'entrevue ... qui est-ce ?!


Goto est-il considéré comme une boucle? :)


@FsonmeZay: Vous pouvez également le faire en C #, mais il utilise toujours une boucle. C'est juste caché à l'intérieur de copier .


4 Réponses :


33
votes

Vous pouvez créer une pile à partir de tout ce qui est iénumérable xxx

voir msdn: http://msdn.microsoft.com/en-us/library/76ATXD68.aspx

Cependant, le constructeur de pile utilisera une boucle en interne, Vous ne le voyez tout simplement pas.


1 commentaires

Et le mystack allons apparaître les objets de myList dans l'ordre inverse. Je vous en prie.



0
votes
myStack.Push(myList[0]);
myStack.Push(myList[1]);
myStack.Push(myList[2]);
myStack.Push(myList[3]);
...

0 commentaires

3
votes

Si vous souhaitez afficher les éléments dans le même ordre qu'ils apparaissent dans votre liste, Ensuite, inverser votre liste avant de créer la pile à partir de celui-ci.

var myStack = new Stack<MyObjectType>(myList.Reverse());


0 commentaires

0
votes

dans Java 1.8 Stack a une méthode prédéfinie Call Addall - Article sera enfoncée sur la pile

pile.addall (liste);


0 commentaires