public void ForeachFromHead(Action <NodeMusic> action)
        {
            NodeMusic currentNodeMusic = Head;

            while (currentNodeMusic != null)
            {
                action(currentNodeMusic);
                currentNodeMusic = currentNodeMusic.Next;
            }
        }
        public void ForeachFromTail(Action <NodeMusic> action)
        {
            NodeMusic currentNodeMusic = Tail;

            while (currentNodeMusic != null)
            {
                action(currentNodeMusic);
                currentNodeMusic = currentNodeMusic.Previous;
            }
        }
        public void AddLast(NodeMusic NodeMusic)
        {
            count++;
            if (Tail == null)
            {
                Head = NodeMusic;
                Tail = NodeMusic;
                return;
            }

            NodeMusic.Previous = Tail;
            Tail.Next          = NodeMusic;
            Tail = NodeMusic;
        }
        public void AddHead(NodeMusic NodeMusic)
        {
            count++;
            if (Head == null)
            {
                Head = NodeMusic;
                Tail = NodeMusic;
                return;
            }

            NodeMusic.Next = Head;
            Head.Previous  = NodeMusic;
            Head           = NodeMusic;
        }
        public NodeMusic RemoveTail()
        {
            if (Tail == null)
            {
                return(null);
            }

            count--;
            var NodeMusicToReturn = Tail;

            if (Tail.Previous != null)
            {
                Tail      = Tail.Previous;
                Tail.Next = null;
            }
            else
            {
                Tail = null;
                Head = null;
            }

            return(NodeMusicToReturn);
        }
        public NodeMusic RemoveHead()
        {
            if (Head == null)
            {
                return(null);
            }

            count--;

            var NodeMusicToReturn = Head;

            if (Head.Next != null)
            {
                Head          = Head.Next;
                Head.Previous = null;
            }
            else
            {
                Head = null;
                Tail = null;
            }

            return(NodeMusicToReturn);
        }