public static AnnularDoubleLinkedList <int> CreateCollection(int n) { AnnularDoubleLinkedList <int> collection = new AnnularDoubleLinkedList <int>(); for (int i = 1; i <= n; i++) { collection.Add(i); } return(collection); }
static void Functions(int choice) { switch (choice) { case 1: { Console.Write("Введите количество элементов в коллекции: "); int count = 0; bool ok = false; do { ok = int.TryParse(Console.ReadLine(), out count); if (!ok || choice <= 0) { Console.Write("Некорректный ввод, попробуйте еще: "); ok = false; } } while (!ok); MainList = AnnularDoubleLinkedList <int> .CreateCollection(count); Console.ForegroundColor = ConsoleColor.Green; Console.WriteLine("Коллекция, содержащая {0} элементов успешно создана", count); Console.ResetColor(); break; } case 2: { if (MainList == null) { Console.ForegroundColor = ConsoleColor.Red; Console.WriteLine("Коллекция не создана"); Console.ResetColor(); } else { int element = 0; Console.Write("Введите значение элемента (целое число): "); bool ok = false; do { ok = int.TryParse(Console.ReadLine(), out element); if (!ok) { Console.Write("Некорректный ввод, попробуйте еще: "); } } while (!ok); MainList.Add(element); Console.ForegroundColor = ConsoleColor.Green; Console.WriteLine("Элемент {0} успешно добавлен", element); Console.ResetColor(); } break; } case 3: { if (MainList == null) { Console.ForegroundColor = ConsoleColor.Red; Console.WriteLine("Коллекция не создана"); Console.ResetColor(); } else { int data = 0; Console.Write("Введите значение элемента для поиска: "); bool ok = false; do { ok = int.TryParse(Console.ReadLine(), out data); if (!ok) { Console.Write("Некорректный ввод, попробуйте еще: "); } } while (!ok); int index = MainList.IndexOf(data); if (index >= 0) { Console.ForegroundColor = ConsoleColor.Green; Console.WriteLine("Элемент найден под номером {0}", index); Console.ResetColor(); } else { Console.ForegroundColor = ConsoleColor.Red; Console.WriteLine("Элемент не найден"); Console.ResetColor(); } } break; } case 4: { if (MainList == null) { Console.ForegroundColor = ConsoleColor.Red; Console.WriteLine("Коллекция не создана"); Console.ResetColor(); } else { int index = 0; Console.Write("Введите номер элемента: "); bool ok = false; do { ok = int.TryParse(Console.ReadLine(), out index); if (!ok || index <= 0) { Console.Write("Некорректный ввод, попробуйте еще: "); ok = false; } if (index > MainList.Count) { Console.ForegroundColor = ConsoleColor.Red; Console.Write("Введенный номер больше количества элементов в коллекции, попробуйте еще: "); Console.ResetColor(); ok = false; } } while (!ok); int val = AnnularDoubleLinkedList <int> .Take(index, MainList); Console.ForegroundColor = ConsoleColor.Green; Console.WriteLine("Полученное значение по номеру - {0}", val); Console.ResetColor(); } break; } case 5: { if (MainList == null) { Console.ForegroundColor = ConsoleColor.Red; Console.WriteLine("Коллекция не создана"); Console.ResetColor(); } else { int index = 0; Console.Write("Введите номер элемента для удаления: "); bool ok = false; do { ok = int.TryParse(Console.ReadLine(), out index); if (!ok || index <= 0) { Console.Write("Некорректный ввод, попробуйте еще: "); ok = false; } if (index > MainList.Count) { Console.ForegroundColor = ConsoleColor.Red; Console.Write("Введенный номер больше количества элементов в коллекции, попробуйте еще: "); Console.ResetColor(); ok = false; } } while (!ok); MainList.Remove(index); Console.ForegroundColor = ConsoleColor.Green; Console.WriteLine("Элемент успешно удален"); Console.ResetColor(); } break; } case 6: { Console.ForegroundColor = ConsoleColor.Green; Console.WriteLine("Печать коллекции: "); Console.ResetColor(); if (MainList == null) { Console.ForegroundColor = ConsoleColor.Red; Console.WriteLine("Коллекция не создана"); Console.ResetColor(); } else { foreach (int s in MainList) { Console.WriteLine(s); } } break; } } }