1

最も古いアイテムが配列の最初になるように並べ替えられたアイテムの配列があります。

キューにアイテムをポップすると、最も古いアイテムが最初に来るように、配列からキューをロードしたいと思います。

これどうやってするの?

4

4 に答える 4

7

オブジェクトへの LINQ の使用...

var q = new Queue<T>(array.OrderBy(d => d.date));

編集:おっと、間違った方法です。

于 2009-02-18T15:51:26.070 に答える
2

配列がすでに最も古いものから最初にソートされていることがわかっている場合は、次を使用できます。

Queue<YourType> q = new Queue<YourType>(yourSortedArray);

配列が事前に並べ替えられていない場合は、LINQを使用して並べ替えることができます。

Queue<YourType> q =
    new Queue<YourType>(yourUnsortedArray.OrderBy(x => x.YourDateProperty));

次に、電話をかけるだけq.Dequeueで、アイテムを古いものから新しいものの順に取得できます。

于 2009-02-18T16:00:38.950 に答える
2

プライオリティ キューが必要です。次に、受信アイテムがソートされているかどうかは関係ありません。

おそらくライブラリに実装があります。

PS:あなたの場合の優先順位はageにマップされます。

于 2009-03-16T07:53:25.473 に答える
1

これを試して

public static T ArrayToQueue<T>(T[] items) {
  var queue = new Queue<T>();
  Array.ForEach(items, i => queue.Enqueue(i));
  return queue;
}
于 2009-02-18T15:53:37.877 に答える