Ejemplo n.º 1
0
 //Удаление элемента по идексу
 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);
     }
 }
Ejemplo n.º 2
0
        //Добавление элемента в конец
        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++;
        }
Ejemplo n.º 3
0
        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);
        }