Comment voulez-vous obtenir le premier et le dernier élément dans une File d'attente?

Dire que j'ai un recueil de valeurs où je spécifier la taille de la collection et chaque fois qu'une nouvelle valeur est ajoutée, toutes les anciennes valeurs au-delà de cette taille spécifiée sont déposés. Évidemment (et j'ai testé ce) le meilleur type de collection à l'utilisation de ce comportement est une File d'attente:

myQueue.Enqueue(newValue)
If myQueue.Count > specifiedSize Then myQueue.Dequeue()

Cependant, que faire si je veux calculer la différence entre le premier et le dernier élément de la File d'attente? Évidemment, je ne peux pas accéder aux éléments par index. Mais pour passer d'une File d'attente de quelque chose de la mise en œuvre de IList semble exagéré, tout comme l'écriture d'une nouvelle File d'attente-comme la classe. Maintenant j'ai:

Dim firstValue As Integer = myQueue.Peek()
Dim lastValue As Integer = myQueue.ToArray()(myQueue.Count - 1)
Dim diff As Integer = lastValue - firstValue

Cet appel à ToArray() qui me dérange, mais une alternative supérieure ne vient pas à moi. Des suggestions?

Ne prend pas en C# ont une file d'attente de type?
Non, C# n'est pas n'importe quel type, .Net est ce qu'a des types; et .Net n'a pas une file d'attente de type, il a une File d'attente/Attente de<T> le type qui a une file d'attente de la méthode.

OriginalL'auteur Dan Tao | 2009-08-20