私は、コレクションのサイズを指定し、新しい値が追加されるたびに、この指定されたサイズを超える古い値は削除された値のローリングコレクションを持っているとします。キュー明らかに、この動作のために使用するコレクションの最適なタイプを(と私はこれをテストしてみた)です:キュー内の最初と最後のアイテムをどのように取得しますか?
myQueue.Enqueue(newValue)
If myQueue.Count > specifiedSize Then myQueue.Dequeue()
しかし、私は、キュー内の最初と最後の項目間の差を計算したい場合は何?明らかに私は索引で項目にアクセスできません。しかし、QueueからIListを実装するものに切り替えることは、新しいQueueのようなクラスを書くのと同様に、過剰なもののように思えます。今私が持っている:ToArray()
に呼び出す
Dim firstValue As Integer = myQueue.Peek()
Dim lastValue As Integer = myQueue.ToArray()(myQueue.Count - 1)
Dim diff As Integer = lastValue - firstValue
が私を悩ますが、優れた選択肢は私に来ていません。助言がありますか?
C#にデキュー型がありませんか? –
いいえ、C#には型がありません.Netには型があります。 .Netにはデキュー型がありません。デキュー型のキュー/キューがあります。 –