public void Reset()
 {
     _currentNode = _sentinel;
 }
 public bool MoveNext()
 {
     _currentNode = _currentNode.Next;
     return(_currentNode != _sentinel);
 }
 private void RemoveNode(DoublyLinkedListNode <T> node)
 {
     node.Previous.Next = node.Next;
     node.Next.Previous = node.Previous;
     Length--;
 }
 public DoublyLinkedListEnumerator(DoublyLinkedListNode <T> sentinel)
 {
     _sentinel = _currentNode = sentinel;
 }
 internal DoublyLinkedListNode(T value, DoublyLinkedListNode <T> previous, DoublyLinkedListNode <T> next)
 {
     Previous = previous;
     Next     = next;
     Value    = value;
 }