Conosco System.Collections.Stack. Sto cercando una classe che supporti PushFront() & PushBack().Esiste una classe di stack double side in .net?
risposta
Perché non usare/wrap LinkedList<T>
? Ha metodi AddFirst
e AddLast
. Puoi avvolgerlo per nascondere i metodi AddBefore
ecc.
Il termine comune per questo è deque (significa coda a doppio fine). Se per qualche ragione il wrapping di un LinkedList<T>
non è sufficiente (dovrebbe!), Si potrebbe guardare all'implementazione di Eric Lippert di uno immutable deque.
Sembra che tu voglia qualcosa chiamato normalmente deque. Il più vicino a conoscenza di .NET è LinkedList<T>
. Non credo che ce ne sia uno costruito da un buffer circolare (espandibile come richiesto), che è probabilmente il modo in cui vorresti crearlo da zero.
Ovviamente, è possibile implementarlo da soli, ma probabilmente utilizzerei lo LinkedList<T>
a meno che non avessi una buona ragione per non farlo. Eric Lippert ha anche an immutable implementation you could look at (blog post covering it), ma ovviamente vorresti scrivere una serie di test, ecc ... e non puoi vuoi uno immutabile.
dovrebbero prendere in considerazione la ridenominazione di questo sito per askjonskeet.com –
@ SethReno: Questo è già preso ... provalo :) –
Perché non utilizzare uno LinkedList<T>
? Permette di aggiungere inizio, fine e ovunque nel mezzo. Se non si desidera esporre alcuni dei metodi LinkedList<T>
, si può sempre avvolgere e solo esporre i metodi che si desidera esporre.
Quello che stai cercando è un deque. Ecco un esempio: http://www.codeproject.com/KB/recipes/deque.aspx
- 1. Esiste una classe standard per rappresentare un "intervallo" in .net?
- 2. Esiste una classe .NET che rappresenta i tipi di operatore?
- 3. Custom Double Star Operator per una classe?
- 4. Limite memoria stack .NET
- 5. JQuery DataTables .Net Server Side Pagination Issues
- 6. In Java 8, esiste una classe ByteStream?
- 7. Stack Trace per l'accesso .NET
- 8. Come ottenere una traccia di stack in .NET nell'esecuzione normale?
- 9. Questo stack di tecnologia Java in .net?
- 10. Java Double vs double: tipo classe vs tipo primitivo
- 11. Esiste una libreria .net che ha una classe Vector immutabile persistente (come trovata in Clojure/Scala)?
- 12. Perché non esiste una classe di albero <T> in .NET?
- 13. ggvis grafico side-by-side raggruppato dalla seconda variabile
- 14. Esiste un equivalente di "gettimeofday" in .NET
- 15. Esiste una classe URL in JavaScript?
- 16. versioni side-by-side multiple con Homebrew?
- 17. Come verificare una classe esiste in css?
- 18. Esiste una classe virtuale in C#?
- 19. Loggers in GWT Client Side
- 20. classe Mucchio in .NET
- 21. grafici generati da 'plot' e 'ggplot' side-by-side
- 22. Sigillatura di classe astratta o interfaccia in classe .NET
- 23. Perché esiste una classe EventArgs di base
- 24. Esiste una classe di coda .NET che consente di eliminare più elementi contemporaneamente?
- 25. Esiste una classe circle in Java come la classe Rectangle
- 26. jQuery scroll text side-to-side
- 27. Lo stack .NET vs di Windows pila
- 28. Xcode 6 visualizzazione editor side by side
- 29. Quali sono i numeri in una traccia di stack .NET su una pagina di errore ASPX?
- 30. Side-by-side errore di configurazione (Microsoft.VC80.CRT v8.0.50608.0)
Sono sicuro che se esistesse lo troverete nel namespace delle collezioni. – ChaosPandion
Quello che si chiama * Stack * non è uno se supporta il push back. –