//Удаление элемента по идексу public bool RemoveAt(int index) { if (index > 0 && index < Count) { TranspSredstv[] buf = new TranspSredstv[Capasity]; TranspSredstv del_elem = arr[index - 1]; for (int i = 0, j = 0; i < Count; i++) { if (i == index - 1) { continue; } buf[j] = arr[i]; j++; } Count--; arr = buf; CollectionCountChenged?.Invoke(this, new CollectionHandlerEventArgs(NameCollection, String.Format("Удаление из коллекции элемента с индексом {0}.", index), del_elem)); return(true); } else { return(false); } }
//Добавление элемента в конец public void Add() { TranspSredstv item = RandElem.Rand(); if (Count < Capasity) { arr[Count] = item; CollectionCountChenged?.Invoke(this, new CollectionHandlerEventArgs(NameCollection, "Добавление 1 элемента в конец коллекции.", arr[Count])); } else { Resize(); arr[Count] = item; CollectionCountChenged?.Invoke(this, new CollectionHandlerEventArgs(NameCollection, "Добавление 1 элемента в конец коллекции.", arr[Count])); } Count++; }
static void Menu1() { int cmd; bool sform = false; MyCollection collection = null; do { Console.WriteLine("1. Создать коллекцию\n" + "2. Добавить элемент в конец коллекции.\n" + "3. Очистка коллекции.\n" + "4. Проверка, есть ли элемент с заданным ФИО водителя в коллекции.\n" + "5. Удаление элемента из коллекции(по ФИО).\n" + "6. Печать коллекции.\n" + "7. Сортировка коллекии по кол-ву пассажиров.\n" + "8. Выход.\n"); cmd = InputNum.Input_int("Выберите действие: "); switch (cmd) { case 1: Console.Clear(); int size = InputNum.Input_int("Введите кол-во элементов коллекции: "); collection = new MyCollection(size); Console.Clear(); Console.WriteLine("Коллекция успешно сформирована.\n"); sform = true; break; case 2: Console.Clear(); if (sform) { collection.Add(RandElem.Rand()); Console.WriteLine("Элемент успешно добавлен!\n"); } else { Console.WriteLine("Коллекция не сформирована!\n"); } break; case 3: Console.Clear(); if (sform) { collection.Clear(); Console.WriteLine("Коллекция успешно очищена!\n"); } else { Console.WriteLine("Коллекция не сформирована!\n"); } break; case 4: Console.Clear(); if (sform) { Console.Write("Введите фио водителя: "); string fio = Console.ReadLine(); TranspSredstv[] buf = new TranspSredstv[collection.Count]; TranspSredstv elem = null; collection.CopyTo(buf, 0); for (int i = 0; i < collection.Count; i++) { if (buf[i].Name_vod == fio) { elem = buf[i]; break; } } if (collection.Contains(elem)) { Console.WriteLine("Элемент входит в коллекцию.\n"); } else { Console.WriteLine("Элемент не входит в коллекцию\n"); } } else { Console.WriteLine("Коллекция не сформирована!\n"); } break; case 5: Console.Clear(); if (sform) { if (collection.Count == 0) { Console.WriteLine("В коллекции нет элементов.\n"); } else { Console.Write("Введите фио водителя: "); string fio = Console.ReadLine(); TranspSredstv[] buf = new TranspSredstv[collection.Count]; TranspSredstv elem = null; collection.CopyTo(buf, 0); for (int i = 0; i < collection.Count; i++) { if (buf[i].Name_vod == fio) { elem = buf[i]; break; } } Console.Clear(); if (collection.Remove(elem)) { Console.WriteLine("Элемент успешно удален.\n"); } else { Console.WriteLine("Элемент не найден.\n"); } } } else { Console.WriteLine("Коллекция не сформирована!\n"); } break; case 6: Console.Clear(); if (sform) { if (collection.Count == 0) { Console.WriteLine("В коллекции нет элементов.\n"); } else { collection.Show(); Console.WriteLine(); } } else { Console.WriteLine("Коллекция не сформирована!\n"); } break; case 7: Console.Clear(); if (sform) { if (collection.Count == 0) { Console.WriteLine("В коллекции нет элементов.\n"); } else { TranspSredstv[] buf = new TranspSredstv[collection.Count]; collection.CopyTo(buf, 0); Array.Sort(buf); collection.Clear(); for (int i = 0; i < buf.Length; i++) { collection.Add(buf[i]); } Console.WriteLine("Коллекция успешно отсортирована.\n"); } } else { Console.WriteLine("Коллекция не сформирована!\n"); } break; case 8: Console.Clear(); break; default: Console.Clear(); Console.WriteLine("Такого действия нет, выберите другое действие!\n"); break; } } while (cmd != 8); }