Example #1
0
        static void Main(string[] args)
        {
            CycledDynamicArray <int> item = new CycledDynamicArray <int>()
            {
                1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20
            };
            DynamicArray <int> c     = new DynamicArray <int>(100);
            DynamicArray <int> item2 = new DynamicArray <int>()
            {
                11, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 10
            };
            DynamicArray <int> a = new DynamicArray <int> (20);

            a.Add(1);
            a.Add(2);
            a.Add(3);
            a.AddRange(item2);

            item2.Capacity = 100;

            var g = item2.ToArray();

            //Console.WriteLine(a.IsInsert(3, 99999));
            //Console.WriteLine(a.IsInsert(1, 10000));
            c = (DynamicArray <int>)a.Clone();

            foreach (var item1 in c)
            {
                Console.Write($"{item1} ");
            }
            Console.WriteLine();
            foreach (var item1 in item)
            {
                Console.Write($"{item1} ");
            }
            Console.ReadLine();
        }
Example #2
0
    {           // Демонстрация работы с DynamicArray, написано ужасно, но как лучше не знаю.
        static void Main()
        {
            Console.WriteLine("Демонстрация работы бибоиотеки Dynamic_Array");
            DynamicArray <int> da = new DynamicArray <int>();

            Console.WriteLine($"Создание экземпляра DynamicArray конструктором без параметров, вместимость: {da.Capacity}");
            DynamicArray <int> da2 = new DynamicArray <int>(4);

            Console.WriteLine($"Создание экземпляра DynamicArray конструктором с параметром 4, вместимость: {da2.Capacity}");
            List <int> lst1 = new List <int> {
                1, 2, 3, 4, 5, 6, 7, 8, 9
            };
            DynamicArray <int> da3 = new DynamicArray <int>(lst1);

            Console.WriteLine($"Создание экземпляра DynamicArray конструктором принимающим на вход другую коллекцию IEnumerable\n" +
                              $"Длина коллекции List: {lst1.Count}, вместимость: {lst1.Capacity}, содержимое: {string.Join(", ", lst1)};\n" +
                              $"Длина коллекции DynamicArray: {da3.Count}, вместимость: {da3.Capacity}, содержимое: {da3}");
            Console.WriteLine("Метод Add, позволяющий добавлять в конец массива новые данные. При нехватке места для добавления элемента массив удваивается: ");
            int count = 1;

            while (count < 6)
            {
                da2.Add(count);
                Console.WriteLine($"Колличество элементов: {da2.Count}, вместимость: {da2.Capacity}, коллекция {da2}");
                count++;
            }
            Console.WriteLine($"Метод AddRange добавляющий в конец массива содержимое коллекции IEnumerable. Содержимое коллекции da2 до добавления lst1: {da2}, вместимость: {da2.Capacity}");
            da2.AddRange(lst1);
            Console.WriteLine($"Метод AddRange добавляющий в конец массива содержимое коллекции IEnumerable. Содержимое коллекции da2 после добавления lst1: {da2}, вместимость: {da2.Capacity}");
            da2.Remove(5);
            Console.WriteLine($"Метод Remove удаляющий из коллекции пепрвое вхождение заданного элемента (5). Содержимое коллекции da2 после удаления 5: {da2}, вместимость: {da2.Capacity}");
            da2.Insert(4, 5);
            da2.Insert(4, 5);
            Console.WriteLine($"Метод Insert, позволяющую вставить объект по нужному индексу Содержимое коллекции da2 после двойного добавления 5: {da2}, вместимость: {da2.Capacity}");
            Console.WriteLine($"Свйойство Lenght - получение колличества элементов (В данном случае Count): {da2.Count}, вместимость: {da2.Capacity}");
            Console.WriteLine("Реализация IEnumerable и Ienumerable<T>");
            foreach (int i in da3)
            {
                Console.WriteLine(i);
            }
            Console.WriteLine("Реализация доступа по индексу");
            for (int i = 0; i < da3.Count; i++)
            {
                Console.WriteLine(da3[i]);
            }

            try
            {
                Console.WriteLine(da3[10]);
            }
            catch (ArgumentOutOfRangeException ex)
            {
                Console.WriteLine($"Демонстрация ошибки при доступе мимо индекса: {ex.Message}");
            }

            Console.WriteLine("Доступ к элементам с конца, при использовании отрицательного индекса:");

            count = -1;
            while (count >= da3.Count * -1)
            {
                Console.WriteLine($"Индекс: {count}; содержимое: {da3[count]}");
                count--;
            }

            Console.WriteLine($"Метод ToArray возввращающий обычный массив: {string.Join(", ", da3.ToArray())}");

            DynamicArray <int> da4 = da3.Clone() as DynamicArray <int>;

            Console.WriteLine($"Реализация интерфейса IClonable: {string.Join(", ", da4)}");

            Console.WriteLine($"Перегрузка оператора Equals: {da3.Equals(da4)}, ==, {da3 == da4}");

            CycledDynamicArray <int> cycledArray = new CycledDynamicArray <int>(da3);

            Console.WriteLine("Массив CycledDynamicArray на базе DynamicArray с зацикленным итератором:");
            count = 0;

            foreach (int i in cycledArray)
            {
                Console.WriteLine(i);
                count++;
                if (count > 30)
                {
                    break;
                }
            }

            Console.WriteLine("Перерыв");

            count = 0;

            foreach (int i in cycledArray)
            {
                Console.WriteLine(i);
                count++;
                if (count > 30)
                {
                    break;
                }
            }

            Console.WriteLine("Демонстрация работы метода расширения ToDynamicArray:");

            List <int> list1 = new List <int> {
                1, 2, 3
            };
            List <int> list2 = new List <int> {
                4, 5, 6
            };
            DynamicArray <int> customArray = list1.Concat(list2).ToDynamicArray();

            foreach (int i in customArray)
            {
                Console.WriteLine("!" + i);
            }

            DynamicArray <int> da5 = new DynamicArray <int>(new int[] { 7, 7, 7 });


            int[] mass = da3.ToArray();

            da5.CopyTo(mass, 6);

            Console.WriteLine($"Работа метода CopyTo: {string.Join(", ", mass)}");

            // Работа с InsertWithFeedback:
            Console.WriteLine(da5.InsertWithFeedback(4, 1));
            Console.WriteLine(da5);

            Console.ReadLine();
        }