我有一个项目数组,排序后最旧的项目在数组中是第一个。
我想从数组中加载一个队列,这样当我弹出队列中的项目时,最旧的项目首先出现。
我怎样才能做到这一点?
使用 LINQ 到对象...
var q = new Queue<T>(array.OrderBy(d => d.date));
编辑:操作,错误的方式。
如果您知道您的数组已经按最早排序,那么您可以使用:
Queue<YourType> q = new Queue<YourType>(yourSortedArray);
如果数组未预先排序,则可以使用 LINQ 对其进行排序:
Queue<YourType> q =
new Queue<YourType>(yourUnsortedArray.OrderBy(x => x.YourDateProperty));
然后你可以打电话q.Dequeue
以从最旧到最新的顺序获取项目。
尝试这个
public static T ArrayToQueue<T>(T[] items) {
var queue = new Queue<T>();
Array.ForEach(items, i => queue.Enqueue(i));
return queue;
}