static void Main(string[] args)
        {
            var myList1 = new MyList <int>();

            OutputMyList(myList1);

            var myList2 = new MyList <int>(10);

            OutputMyList(myList2);

            var myList3 = new MyList <int>(10, 9);

            OutputMyList(myList3);

            myList1.Add(10);
            OutputMyList(myList1);

            myList2.AddRange(new int[] { 20, 20, 20 });
            OutputMyList(myList2);

            myList1.Clear();
            OutputMyList(myList1);

            Console.WriteLine(myList3.Contains(9));
            OutputMyList(myList3);

            var array = Tools.CreateUnsortedArray(20);

            Sorts.Sorts.MergeSort(array);
            myList1.AddRange(array);
            var aim = (new Random()).Next(20);

            Console.WriteLine($"Aim: {aim}");
            OutputMyList(myList1);
            Console.WriteLine(myList1.BinarySearch(aim));

            OutputMyList(myList1.ConvertAll(value => (char)value));

            array = new int[20];
            myList1.CopyTo(array);
            myList1.AddRange(array);
            OutputMyList(myList1);

            Console.WriteLine("Exists: " + myList1.Exists(x => x == 10));
            Console.WriteLine("Find: " + myList1.Find(x => x == 10));
            Console.WriteLine("FindLast: " + myList1.FindLast(x => x == 10));
            Console.WriteLine("FindAll.Count: " + myList1.FindAll(x => x == 10)?.Count);
            Console.WriteLine("FindIndex: " + myList1.FindIndex(x => x == 10));
            Console.WriteLine("FindLastIndex: " + myList1.FindLastIndex(x => x == 10));
            Console.WriteLine("IndexOf: " + myList1.IndexOf(10));
            Console.WriteLine("LastIndexOf: " + myList1.LastIndexOf(10));

            OutputMyList(myList1.GetRange(3, 4));
            myList1.Insert(2, -1);
            OutputMyList(myList1);

            myList1.Remove(-1);
            myList1.RemoveRange(37, 2);
            myList1.RemoveAt(0);
            myList1.RemoveAll(x => x == 8);
            OutputMyList(myList1);
        }