public bool MoveNext()
 {
     if (_currentNode == null)
     {
         if (_isReversed)
         {
             _currentNode = _currentList.Last;
         }
         else
         {
             _currentNode = _currentList.First;
         }
         return(true);
     }
     if (_isReversed)
     {
         _currentNode = _currentNode.Previous;
     }
     else
     {
         _currentNode = _currentNode.Next;
     }
     if (_currentNode == null)
     {
         return(false);
     }
     return(true);
 }
        public void AddAfter(ICustomDoubleLinkedListNode <T> node, T value)
        {
            if (node == null)
            {
                throw new ArgumentNullException(nameof(node));
            }
            if (ReferenceEquals(node, Last))
            {
                AddLast(value);
                return;
            }

            var newNode = createNode(value);

            newNode.Next     = node.Next;
            node.Next        = newNode;
            newNode.Previous = node;
            if (newNode.Next != null)
            {
                newNode.Next.Previous = newNode;
            }
            Count++;
        }
 public void Reset()
 {
     _currentNode = null;
 }
 public void Dispose()
 {
     _currentList = null;
     _currentNode = null;
 }