public void CopyTo(T[] arr, int index)
        {
            MyLinkedlistNode <T> current = _head;

            while (current != null)
            {
                arr[index++] = current.Data;
                current      = current.Next;
            }
        }
        public IEnumerator GetEnumerator()
        {
            MyLinkedlistNode <T> current = _head;

            while (current != null)
            {
                yield return(current.Data);

                current = current.Next;
            }
        }
        public void Add(T value)
        {
            MyLinkedlistNode <T> node = new MyLinkedlistNode <T>(value);

            if (_head == null)
            {
                _head = node;
                _last = node;
            }
            else
            {
                _last.Next = node;
                _last      = node;
            }
            Count++;
            // Console.WriteLine(value + " is added");
        }
        public bool Remove(T item)
        {
            MyLinkedlistNode <T> previous = null;
            MyLinkedlistNode <T> current  = _head;

            while (current != null)
            {
                if (current.Data.Equals(item))
                {
                    if (previous != null)
                    {
                        previous.Next = current.Next;

                        if (current.Next == null)
                        {
                            _last = previous;
                        }
                    }

                    else
                    {
                        _head = _head.Next;

                        if (_head == null)
                        {
                            _last = null;
                        }
                    }
                    Count--;
                    //  Console.WriteLine(item + " is Removed");
                    return(true);
                }
                previous = current;
                current  = current.Next;
            }
            return(false);
        }