Nito.Collections.Deque A double-ended queue (deque), which provides O(1) indexed access, O(1) removals from the front and back, amortized O(1) insertions to the front and back, and O(N) insertions and removals anywhere else (with the operations getting slower as the index approaches the middle). The type of elements contained in the deque. The default capacity. The circular _buffer that holds the view. The offset into where the view begins. Initializes a new instance of the class with the specified capacity. The initial capacity. Must be greater than 0. Initializes a new instance of the class with the elements from the specified collection. The collection. May not be null. Initializes a new instance of the class. Gets a value indicating whether this list is read-only. This implementation always returns false. true if this list is read-only; otherwise, false. Gets or sets the item at the specified index. The index of the item to get or set. is not a valid index in this list. This property is set and the list is read-only. Inserts an item to this list at the specified index. The zero-based index at which should be inserted. The object to insert into this list. is not a valid index in this list. This list is read-only. Removes the item at the specified index. The zero-based index of the item to remove. is not a valid index in this list. This list is read-only. Determines the index of a specific item in this list. The object to locate in this list. The index of if found in this list; otherwise, -1. Adds an item to the end of this list. The object to add to this list. This list is read-only. Determines whether this list contains a specific value. The object to locate in this list. true if is found in this list; otherwise, false. Copies the elements of this list to an , starting at a particular index. The one-dimensional that is the destination of the elements copied from this slice. The must have zero-based indexing. The zero-based index in at which copying begins. is null. is less than 0. is equal to or greater than the length of . -or- The number of elements in the source is greater than the available space from to the end of the destination . Copies the deque elemens into an array. The resulting array always has all the deque elements contiguously. The destination array. The optional index in the destination array at which to begin writing. Removes the first occurrence of a specific object from this list. The object to remove from this list. true if was successfully removed from this list; otherwise, false. This method also returns false if is not found in this list. This list is read-only. Returns an enumerator that iterates through the collection. A that can be used to iterate through the collection. Returns an enumerator that iterates through a collection. An object that can be used to iterate through the collection. Checks the argument to see if it refers to a valid insertion point in a source of a given length. The length of the source. This parameter is not checked for validity. The index into the source. is not a valid index to an insertion point for the source. Checks the argument to see if it refers to an existing element in a source of a given length. The length of the source. This parameter is not checked for validity. The index into the source. is not a valid index to an existing element for the source. Checks the and arguments for validity when applied to a source of a given length. Allows 0-element ranges, including a 0-element range at the end of the source. The length of the source. This parameter is not checked for validity. The index into source at which the range begins. The number of elements in the range. Either or is less than 0. The range [offset, offset + count) is not within the range [0, sourceLength). Gets a value indicating whether this instance is empty. Gets a value indicating whether this instance is at full capacity. Gets a value indicating whether the buffer is "split" (meaning the beginning of the view is at a later index in than the end). Gets or sets the capacity for this deque. This value must always be greater than zero, and this property cannot be set to a value less than . Capacity cannot be set to a value less than . Gets the number of elements contained in this deque. The number of elements contained in this deque. Applies the offset to , resulting in a buffer index. The deque index. The buffer index. Gets an element at the specified view index. The zero-based view index of the element to get. This index is guaranteed to be valid. The element at the specified index. Sets an element at the specified view index. The zero-based view index of the element to get. This index is guaranteed to be valid. The element to store in the list. Inserts an element at the specified view index. The zero-based view index at which the element should be inserted. This index is guaranteed to be valid. The element to store in the list. Removes an element at the specified view index. The zero-based view index of the element to remove. This index is guaranteed to be valid. Increments by using modulo- arithmetic. The value by which to increase . May not be negative. The value of after it was incremented. Decrements by using modulo- arithmetic. The value by which to reduce . May not be negative or greater than . The value of before it was decremented. Inserts a single element to the back of the view. must be false when this method is called. The element to insert. Inserts a single element to the front of the view. must be false when this method is called. The element to insert. Removes and returns the last element in the view. must be false when this method is called. The former last element. Removes and returns the first element in the view. must be false when this method is called. The former first element. Inserts a range of elements into the view. The index into the view at which the elements are to be inserted. The elements to insert. The sum of collection.Count and must be less than or equal to . Removes a range of elements from the view. The index into the view at which the range begins. The number of elements in the range. This must be greater than 0 and less than or equal to . Doubles the capacity if necessary to make room for one more element. When this method returns, is false. Inserts a single element at the back of this deque. The element to insert. Inserts a single element at the front of this deque. The element to insert. Inserts a collection of elements into this deque. The index at which the collection is inserted. The collection of elements to insert. is not a valid index to an insertion point for the source. Removes a range of elements from this deque. The index into the deque at which the range begins. The number of elements to remove. Either or is less than 0. The range [, + ) is not within the range [0, ). Removes and returns the last element of this deque. The former last element. The deque is empty. Removes and returns the first element of this deque. The former first element. The deque is empty. Removes all items from this deque. Creates and returns a new array containing the elements in this deque.