我有一个项目数组,这些项目已经过排序,以便最旧的项目位于数组中。
我想从数组中加载一个队列,这样当我弹出队列中的项目时,最旧的项目首先出现。
我该怎么做?
答案 0 :(得分:7)
使用LINQ to Objects ...
var q = new Queue<T>(array.OrderBy(d => d.date));
编辑:Ops,错误的方式。
答案 1 :(得分:2)
如果您知道您的阵列已经按最早排序 - 那么您可以使用:
Queue<YourType> q = new Queue<YourType>(yourSortedArray);
如果数组未预先排序,则可以使用LINQ对其进行排序:
Queue<YourType> q =
new Queue<YourType>(yourUnsortedArray.OrderBy(x => x.YourDateProperty));
然后,您只需拨打q.Dequeue
即可获取最旧到最新订单的商品。
答案 2 :(得分:2)
答案 3 :(得分:1)
试试这个
public static T ArrayToQueue<T>(T[] items) {
var queue = new Queue<T>();
Array.ForEach(items, i => queue.Enqueue(i));
return queue;
}