How to cast or convert List of objects to queue of objects
var q = new Queue<Object>();
for( int i = 0; i < list.Count; i++ ) q.Enqueue( list[i] );
That is, assuming "same order" means that the first item to be dequeued from the queue should be list[0].
If it means the opposite, just use the reverse loop: for( int i = list.Count-1; i >= 0; i-- )
What do you mean by "the same order?"
If you do this:
var queue = new Queue<object>(list);
Then the queue will be enumerated over in the same order as the list, which means that a call to Dequeue
would return the element that had previously resided at list[0]
.
If you do this:
var queue = new Queue<object>(list.AsEnumerable().Reverse());
Then the queue will be enumerated over in the opposite order as the list, which means that a call to Dequeue
would return the element that had previously resided at list[list.Count - 1]
.
Queue
has a constructor that takes in an ICollection
. You can pass your list into the queue to initialize it with the same elements:
var queue = new Queue<T>(list); // where 'T' is the lists data type.