warum verwenden Warteschlange.Peek() anstelle von queue.First()/Last()
Warteschlange enthält spezielle Methode queue.Peek()
, warum sollte ich es nutzen, wenn mir die Allgemeinen queue.First()
und queue.Last()
?
- Die queue-Klasse sind Sie zu suchen?
- c#
Queue
Klasse - Es gibt mehrere Warteschlangen-Klassen in C#. Zum Beispiel, "System".Sammlungen.Warteschlange, "System".Sammlungen.Generisches.Queue(T), oder Sie wurden mit einer Kurzform für "System".Messaging.MessageQueue, nur als 3 Beispiele.
- Ich meinte
System.Collections.Generic.Queue<T>
- Aber sehen Sie jetzt, warum ich, fragte der ursprünglichen Frage, und warum deine Antwort von "C#
Queue
" nicht ausreichend war? - gut diffientely ich habe nicht gemeint
MessageQueue
(weil ich schriebQueue
) aber jetzt weiß ich, dass c# enthält zwei verschiedene queue: aus dem System.Collections und System.Sammlungen.Generisches. Ich denke jedoch, dass diese Abfragen sind wahrscheinlich sehr ähnlich, so meine Frage gilt für beide Abfragen, so spielt es keine Rolle, welche genau, Warteschlange ich finden 🙂
Du musst angemeldet sein, um einen Kommentar abzugeben.
Peek
ist eine klassische Methode, eine Warteschlange, wo, wieFirst
undLast
sind Linq-Methoden. Da die Warteschlange am ehesten implementiertIEnumerable
Sie bekommen die Methoden First und Last, die keine Relevanz für eine strikte Warteschlange.EDIT
Es ist nicht das Ende der Welt zu beugen, das Gesetz der Warteschlange. Klingt wie Sie verwenden die Struktur an Ihre Bedürfnisse anpassen. Könnte es verwirrend sein, für den nächsten Programmierer, aber wer erwartet, dass eine Warteschlange zu handeln, wie eine Warteschlange. Vielleicht erstellen Sie eine Klasse, die Sie erweitert Warteschlange, genannt StackedQueue. Dann, wenn jemand Sie braucht, um zu halten Ihren code, den Sie nicht erwarten, eine Warteschlange Verhalten
IEnumerable
Sie sind garantiert, um zu arbeiten, richtig? Warum brauche ich extraPeek
Methode dann???. Das Problem ist - ich benötige element aus einer anderen Seite derqueue
verwenden möchtenIEnumerable
Methoden für diequeue
aber cache werden die zuletzt hinzugefügten Wert)Enqueue
undDequeue
" und "enumerate" und Zugriff auf die erste/Letzte Elemente. Ich brauche eine Struktur zu halten, bars für "moving average" Indikator