Inverser les éléments d'une file (Queue<T>)
Soit une file Queue1 avec des objets 4 3 2 1.
j'aimerais inverser Queue1 de manière à avoir dans la file 1 2 3 4.
Avec un stylo bic rouge et du papier A4 J'ai réussi a trouver une solution assez barbare en utilisant 3 files temporaires.
Code:
1 2 3 4 5 6 7 8 9 10 11 12
|
while (patches.Count > 0)
{
while (temp2.Count > 0)
temp1.Enqueue(temp2.Dequeue());
temp2.Enqueue(patches.Dequeue());
while (temp1.Count > 0)
{
temp2.Enqueue(temp1.Dequeue());
}
} |
mais je voudrais quelque chose de plus rapide ou sinon moins gourmand en mémoire, car s'il y a beaucoup d'objets dans la file ...
EDIT : Je viens de voir un truc surprenant, soit le VC# est malade soit c'est moi qui comprend pas le concept.
Code:
1 2 3
|
patches = temp2;
temp1.Clear(); temp2.Clear(); |
Le contenu de l'entité objet de type Queue temp2 sont assigné a l'entité objet de type patches.
l'entité UNIQUE séparée objet de type Queue temp2 est vidée de son contenue. Ma Queue patches s'est aussi vidée ...