static void Main(string[] args) { Associate a = new Associate(); List <Associate> Ass = new List <Associate>(); bool y = true; while (y) { Console.Clear(); Console.WriteLine("Выберете операцию:"); Console.WriteLine("1. Добавить сотрудника"); Console.WriteLine("2. Удалить сотрудника по индексу"); Console.WriteLine("3. Вывести всех сотрудников"); Console.WriteLine("4. Вывести сотрудников, у которых в фамилии есть введенные символы"); Console.WriteLine("5. Отсортировать коллекцию по возрасту сотрудников"); Console.WriteLine("6. Отсортировать по фамилии"); int n = 0; n = Int32.Parse(Console.ReadLine()); switch (n) { case 1: { Ass.Add(a.AddAssociate()); break; } case 2: { if (a.check(Ass) == 0) { break; } Console.WriteLine("Введите индекс сотрудника"); Ass.RemoveAt(Int32.Parse(Console.ReadLine())); break; } case 3: { if (a.check(Ass) == 0) { break; } foreach (Associate s in Ass) { Console.WriteLine(s.Show()); } break; } case 4: { if (a.check(Ass) == 0) { break; } a.Find(Ass); //Console.WriteLine("Введите символы для поиска"); //string z = Console.ReadLine(); //for (int i = 0; i < Ass.Count; i++) //{ // if (Ass[i].S.IndexOf(z) != -1) // Console.WriteLine(Ass[i].Show()); //} break; } case 5: { if (a.check(Ass) == 0) { break; } Ass.Sort(); foreach (Associate s in Ass) { Console.WriteLine(s.Show()); } break; } case 6: { if (a.check(Ass) == 0) { break; } a.SortByName(Ass); //bool flag = true; //while (flag) //{ // flag = false; // for (int i = 0; i < Ass.Count - 1; ++i) // if (Ass[i].S.CompareTo(Ass[i + 1].S) > 0) // { // string buf = Ass[i].S; // Ass[i].S = Ass[i + 1].S; // Ass[i + 1].S = buf; // flag = true; // } //} foreach (Associate s in Ass) { Console.WriteLine(s.Show()); } break; } default: { Console.WriteLine("Неверный ввод!!! попробуйте еще"); break; } } Console.WriteLine("Продолжить работу с программой?"); Console.WriteLine("(Нет - выйти, другое - продолжить)"); if (Console.ReadLine() == "Нет") { y = false; } } }