static void Main(string[] args) { // Просмотр всех элементов и циклическое удаление Console.ForegroundColor = ConsoleColor.Red; Console.WriteLine("ВАЖНО: Нумерация элементов начинается с еденицы\n"); Console.ForegroundColor = ConsoleColor.White; /// Создание списка Console.ForegroundColor = ConsoleColor.Blue; Console.WriteLine("..:: Создание списка ::.."); Console.ForegroundColor = ConsoleColor.White; Console.Write("Введите количество элементов: "); int Length = GetLength(); // Записываем длину MyCyclicalList <int> MCL = new MyCyclicalList <int>(Length); /// Заполнение списка Console.ForegroundColor = ConsoleColor.Blue; Console.WriteLine("..:: Заполнение списка ::.."); Console.ForegroundColor = ConsoleColor.White; Fill(ref MCL, Length); /// Вывод списка MCL.Show(); /// Поиск элемента Console.ForegroundColor = ConsoleColor.Blue; Console.WriteLine("..:: Поиск элемента ::.."); Console.ForegroundColor = ConsoleColor.White; Console.Write("Введите значение элемента, который необходимо найти: "); List <int> ss = MCL.Find(GetInt()); Console.WriteLine("Список индексов, на которых находятся элементы с данным значением: "); foreach (int c in ss) { Console.Write(c + ";"); } Console.WriteLine("\n"); // Удаление элемента Console.ForegroundColor = ConsoleColor.Blue; Console.WriteLine("..:: Удаление элемента ::.."); Console.ForegroundColor = ConsoleColor.White; Console.Write("Введите количество элементов, которые вы хотите удалить: "); int DeleteTo = GetLength(); for (int i = 0; i < DeleteTo; i++) { Console.Write("Введите индекс элемента, который необходимо удалить: "); MCL.Remove(GetInt()); } // Вывод списка try { MCL.Show(); } catch (Exception) { Console.ForegroundColor = ConsoleColor.Red; Console.WriteLine("Кажется массив пустой"); } Console.Read(); }
/** Метод заполнения списка типа int **/ static void Fill(ref MyCyclicalList <int> MCL, int Length) { Console.WriteLine("Выберите способ заполнения списка:" + "\n[1] - Заполнение вручную" + "\n[2] - Заполнение датчиком случайных чисел" + "\n[0] - Заполнение изначально подобранными значениями\n"); switch (Console.ReadKey(true).KeyChar) { case '1': { for (int i = 1; i <= Length; i++) { Console.Write($"Введите элемент с индексом [{i}]: "); MCL.Add(GetInt()); } Console.WriteLine($"Список успешно заполнен, количество элементов: {Length}\n"); } break; case '2': { Random random = new Random(); for (int i = 1; i <= Length; i++) { MCL.Add(random.Next(-50, 50)); Console.Write($"Элемент [{i}]: {MCL[i]}; \n"); } Console.WriteLine($"Список успешно заполнен, количество элементов: {Length}\n"); } break; default: { MCL = new MyCyclicalList <int> { 1, 2, 3, 4, 5, 6, 7, 8, 9, 0 }; Console.WriteLine($"Список успешно заполнен, количество элементов: {Length}\n"); } break; } }
// Конструктор с параметром для копирования из другого циклического списка public MyCyclicalList(MyCyclicalList <T> AnotherList) { Count = AnotherList.data.Length; data = new T[Count]; AnotherList.data.CopyTo(data, 0); }