【发布时间】:2009-02-18 15:49:37
【问题描述】:
我有一个项目数组,排序后最旧的项目在数组中排在第一位。
我想从数组中加载一个队列,这样当我弹出队列中的项目时,最旧的项目首先出现。
我该怎么做?
【问题讨论】:
我有一个项目数组,排序后最旧的项目在数组中排在第一位。
我想从数组中加载一个队列,这样当我弹出队列中的项目时,最旧的项目首先出现。
我该怎么做?
【问题讨论】:
使用 LINQ to Objects...
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;
}
【讨论】: