如何将对象列表转换/转换为对象队列

如何将对象列表转换为保持相同顺序的队列?

Queue有一个构造函数,它接受ICollection 。 您可以将列表传递到队列中,以使用相同的元素对其进行初始化:

 var queue = new Queue(list); // where 'T' is the lists data type. 

你对“同一个订单”是什么意思?

如果你这样做:

 var queue = new Queue(list); 

然后,队列将以与列表相同的顺序进行枚举,这意味着对Dequeue的调用将返回先前驻留在list[0]的元素。

如果你这样做:

 var queue = new Queue(list.AsEnumerable().Reverse()); 

然后,队列将以与列表相反的顺序进行枚举,这意味着对Dequeue的调用将返回先前驻留在list[list.Count - 1]的元素。

 var q = new Queue(); for( int i = 0; i < list.Count; i++ ) q.Enqueue( list[i] ); 

也就是说,假设“相同顺序”意味着要从队列中出队的第一项应该是list [0]。

如果它意味着相反,只需使用反向循环: for( int i = list.Count-1; i >= 0; i-- )

 var mylist = new List {1,2,3}; var q = new Queue(mylist);