DequeNET (pronounced Deck Net) provides a concurrent lock-free deque C# implementation. A deque, or double-ended queue, is a data structure that allows insertion and removal of items on both ends. ConcurrentDeque<T> supports 6 operations in constant time O(1): PushRight, PopRight, PeekRight, PushLeft, PopLeft and PeekLeft.
The library also offers a simpler Deque<T> (not thread safe), implemented as a ring buffer. This implementation allows Pop and Peek operations to run in O(1) time and Push operations in amortized O(1) time.