Conozco System.Collections.Stack. Estoy buscando una clase que sea compatible con PushFront() & PushBack().¿Hay una clase de pila de doble cara en .net?
Respuesta
¿Por qué no usar/envolver LinkedList<T>
? Tiene los métodos AddFirst
y AddLast
. Puede envolverlo para ocultar los métodos AddBefore
etc.
El término común para esto es deque (significa cola de doble final). Si por algún motivo ajustar un LinkedList<T>
no es suficiente (¡debería!), Podría consultar la implementación de Eric Lippert de un immutable deque.
Parece que quiere algo normalmente llamado deque. Lo más cerca que estoy enterado en .NET es LinkedList<T>
. No creo que haya uno creado a partir de un búfer circular (expandiéndose según se requiera), que es la forma en que probablemente querría construirlo desde cero.
Por supuesto, podría implementarlo usted mismo, pero probablemente usaría LinkedList<T>
a menos que tuviera una buena razón para no hacerlo. Eric Lippert también tiene an immutable implementation you could look at (blog post covering it), pero obviamente querrá escribir un montón de pruebas, etc ... y no puede querer una inmutable.
deberían considerar el cambio de nombre de este sitio a askjonskeet.com –
@SethReno: Eso ya está tomado ... pruébalo :) –
¿Por qué no utilizar un LinkedList<T>
? Permite la adición de inicio, final y cualquier punto intermedio. Si no desea exponer algunos de los métodos LinkedList<T>
, siempre puede envolverlo y solo exponer los métodos que desea exponer.
Lo que estás buscando es un deque. Aquí hay un ejemplo: http://www.codeproject.com/KB/recipes/deque.aspx
- 1. ¿Hay una visibilidad de la cara posterior equivalente para three.js?
- 2. La pila .NET vs pila de Windows
- 3. ¿Qué es un "error de doble pila"?
- 4. ¿Hay una función .NET para validar un nombre de clase?
- 5. ¿Hay una clase .NET que represente tipos de operador?
- 6. ¿Hay alguna manera de obtener trazas de pila .net en Sql Profiler, o una herramienta similar?
- 7. ¿Hay una clase estándar para representar un "rango" en .net?
- 8. de saltos de página para la impresión a doble cara en HTML y CSS
- 9. (¿Por qué) la reflexión es tan cara en .Net?
- 10. clase montón en .NET
- 11. problemas de doble precisión en .NET
- 12. ¿Esta pila de tecnología java en .net?
- 13. .NET: ¿Hay una clase para copiar propiedades de una clase a otra?
- 14. Inserte saltos de página entre los grupos de informes con impresión a doble cara
- 15. Qué hay en un hilo al lado de una pila
- 16. ¿Qué podría usarse como un diccionario de recursos de doble cara?
- 17. Caminando una pila de llamadas .NET usando C++ nativo
- 18. c reconocimiento de la cara #
- 19. ¿Hay un grupo de objetos de propósito general para .NET?
- 20. Detección de cara de ActionScript
- 21. ¿Hay una estructura de datos "Establecer" en .Net?
- 22. ¿Hay algún límite en el número de propiedades en una clase .NET?
- 23. casting Mi clase de Int64, etc Doble
- 24. ¿Hay variables basadas en pila en Python?
- 25. ¿Detección de la cara en Android?
- 26. ¿Hay alguna manera de anular automáticamente ToString() en una clase?
- 27. ¿Hay un volcado de pila Pretty Print?
- 28. ¿Hay una clase .NET similar a System.Console que se puede integrar en las aplicaciones de WinForms?
- 29. Girar cara en la imagen
- 30. ¿Cómo definir una pila de pila?
Estoy seguro de que, si existiera, lo encontraría en el espacio de nombres de las colecciones. – ChaosPandion
Lo que usted llama * Stack * no es uno si admite push back. –