public IEnumerator <T> GetEnumerator()
        {
            DoubleNode <T> currentNode = First;

            while (currentNode != null)
            {
                yield return(currentNode.Value);

                currentNode = currentNode.Next;
            }
        }
        public T this[int index]
        {
            get
            {
                DoubleNode <T> currentNode = First;
                int            i           = 0;

                while (currentNode != null)
                {
                    if (index == i)
                    {
                        return(currentNode.Value);
                    }

                    currentNode = currentNode.Next;
                    i++;
                }
                return(default);