c# - pilas - Cómo convertir/convertir Lista de objetos en cola de objetos
queue dequeue (4)
¿Cómo convertir una lista de objetos a una cola manteniendo el mismo orden?
¿Qué quiere decir con "el mismo orden"?
Si haces esto:
var queue = new Queue<object>(list);
Luego, la cola se enumerará en el mismo orden que la lista, lo que significa que una llamada a Dequeue
devolverá el elemento que anteriormente había residido en la list[0]
.
Si haces esto:
var queue = new Queue<object>(list.AsEnumerable().Reverse());
Luego, la cola se enumerará en el orden opuesto a la lista, lo que significa que una llamada a Dequeue
devolverá el elemento que anteriormente había residido en la list[list.Count - 1]
.
Queue
tiene un constructor que lleva en una ICollection
. Puede pasar su lista a la cola para inicializarla con los mismos elementos:
var queue = new Queue<T>(list); // where ''T'' is the lists data type.
var mylist = new List<int> {1,2,3};
var q = new Queue<int>(mylist);
var q = new Queue<Object>();
for( int i = 0; i < list.Count; i++ ) q.Enqueue( list[i] );
Es decir, suponiendo que "el mismo orden" significa que el primer elemento que se debe sacar de la cola debe estar en la lista [0].
Si significa lo contrario, simplemente use el ciclo inverso: for( int i = list.Count-1; i >= 0; i-- )