private static void Clone(State[] state) //Клонирование коллекции { if (state[0] == null) { Console.ForegroundColor = ConsoleColor.DarkRed; Console.WriteLine("\n Коллекция пуста, операция невозможна."); Console.ForegroundColor = ConsoleColor.White; } else { Monarchy[] monarchy = ToMonarchy(state); Monarchy clone = new Monarchy(); Console.ForegroundColor = ConsoleColor.Blue; Console.Write("Объект для поверхностного копирования: "); Console.ForegroundColor = ConsoleColor.White; monarchy[0].Show(); Console.WriteLine(""); Console.ForegroundColor = ConsoleColor.Blue; Console.Write("Объект для глубокого копирования: "); Console.ForegroundColor = ConsoleColor.White; monarchy[1].Show(); Console.WriteLine(""); Console.ForegroundColor = ConsoleColor.Blue; Console.Write("Поверхностное копирование: "); Console.ForegroundColor = ConsoleColor.White; clone = monarchy[0].SurfaceCopying(); clone.Show(); Console.WriteLine(""); Console.ForegroundColor = ConsoleColor.Blue; Console.Write("Глубокое копирование: "); Console.ForegroundColor = ConsoleColor.White; clone = (Monarchy)monarchy[1].Clone(); clone.Show(); Console.WriteLine(""); Console.Write("\n " + end); } }
private static void FindState(StateInterface[] state) //Поиск объекта в коллекции { Array.Sort(state, new SortByGDP()); bool ok = true; while (ok) { int index; int choice = LiveMenu.Menu(headlines[1], search); switch (choice) { case 0: Monarchy monarchy = new Monarchy(); monarchy.Input(); index = Array.BinarySearch(state, monarchy); try { Monarchy tmp = state[index] as Monarchy; Console.ForegroundColor = ConsoleColor.Cyan; Console.Write("\n Искомый объект: "); Console.ForegroundColor = ConsoleColor.White; Console.WriteLine(); tmp.Show(); Console.WriteLine(); Console.Write("\n Номер объекта в коллекции: {0}", index + 1); Console.WriteLine(); } catch { Console.ForegroundColor = ConsoleColor.Cyan; Console.Write("\n Искомый объект: "); Console.ForegroundColor = ConsoleColor.White; Console.WriteLine(); monarchy.Show(); Console.ForegroundColor = ConsoleColor.DarkRed; Console.Write("\n Отсутствует в коллекции."); Console.ForegroundColor = ConsoleColor.White; Console.WriteLine(); } Console.Write("\n" + end); Console.ReadLine(); break; case 1: Kingdom kingdom = new Kingdom(); kingdom.Input(); index = Array.BinarySearch(state, kingdom); try { Kingdom tmp = state[index] as Kingdom; Console.ForegroundColor = ConsoleColor.Cyan; Console.Write("\n Искомый объект: "); Console.ForegroundColor = ConsoleColor.White; Console.WriteLine(); tmp.Show(); Console.WriteLine(); Console.Write("\n Номер объекта в коллекции: {0}", index + 1); Console.WriteLine(); } catch { Console.ForegroundColor = ConsoleColor.Cyan; Console.Write("\n Искомый объект: "); Console.ForegroundColor = ConsoleColor.White; Console.WriteLine(); kingdom.Show(); Console.ForegroundColor = ConsoleColor.DarkRed; Console.Write("\n Отсутствует в коллекции."); Console.ForegroundColor = ConsoleColor.White; Console.WriteLine(); } Console.Write("\n" + end); Console.ReadLine(); break; case 2: Republic republic = new Republic(); republic.Input(); index = Array.BinarySearch(state, republic); try { Republic tmp = state[index] as Republic; Console.ForegroundColor = ConsoleColor.Cyan; Console.Write("\n Искомый объект: "); Console.ForegroundColor = ConsoleColor.White; Console.WriteLine(); tmp.Show(); Console.WriteLine(); Console.Write("\n Номер объекта в коллекции: {0}", index + 1); Console.WriteLine(); } catch { Console.ForegroundColor = ConsoleColor.Cyan; Console.Write("\n Искомый объект: "); Console.ForegroundColor = ConsoleColor.White; Console.WriteLine(); republic.Show(); Console.ForegroundColor = ConsoleColor.DarkRed; Console.Write("\n Отсутствует в коллекции."); Console.ForegroundColor = ConsoleColor.White; Console.WriteLine(); } Console.Write("\n" + end); Console.ReadLine(); break; case 3: ok = false; break; } } }