コード例 #1
0
ファイル: MyCollection.cs プロジェクト: BernCS/lab12
        public static MyCollection <T> Remove(MyCollection <T> myCollection, MyCollection <T> toDelete)
        {
            while (toDelete != null)
            {
                MyCollection <T> .Remove(ref myCollection, toDelete.Data);

                toDelete = toDelete.Next;
            }
            return(myCollection);
        }
コード例 #2
0
ファイル: MyCollection.cs プロジェクト: BernCS/lab12
        public static bool Remove(ref MyCollection <T> myCollection, T data)
        {
            if (myCollection.Data.Equals(data))
            {
                if (myCollection.Previous == null)
                {
                    myCollection = myCollection.Next;
                    if (myCollection != null)
                    {
                        myCollection.Previous = null;
                    }
                    return(true);
                }
                if (myCollection.Next == null)
                {
                    myCollection.Previous.Next = null;
                    return(true);
                }
                //MyCollection<T> temp = myCollection.Previous;
                myCollection.Next.Previous = myCollection.Previous;
                myCollection.Previous.Next = myCollection.Next;
                return(true);
            }
            if (myCollection.Count == 1)
            {
                return(false);
            }

            if (MyCollection <T> .Remove(ref myCollection.Next, data))
            {
                myCollection.Count--;
                return(true);
            }
            else
            {
                return(false);
            }
        }
コード例 #3
0
ファイル: Program.cs プロジェクト: BernCS/lab12
        static void Menu4()
        {
            int option = -1;

            while (option != 0)
            {
                Console.Clear();
                Console.WriteLine("1) Создать коллекцию.");
                Console.WriteLine("2) Вывести коллекцию.");
                Console.WriteLine("3) Удалить элемент.");
                Console.WriteLine("4) Добавить элемент.");
                Console.WriteLine("5) Вывести кол-во элементов.");
                Console.WriteLine("6) Найти элемент.");
                Console.WriteLine("7) Удалить коллекцию из памяти.");
                Console.WriteLine("0) Выход.");
                Console.WriteLine("Выберите опцию: ");
                option = Input.Int(0, 8);
                switch (option)
                {
                case 0:
                    return;

                    break;

                case 1:
                    Console.WriteLine("Введите размер коллекции: ");
                    int n = Input.Int(0, 10000000);
                    for (int i = 0; i < n; i++)
                    {
                        if (i == 0)
                        {
                            myCollection = new MyCollection <Country>(new Country());
                        }
                        else
                        {
                            myCollection.Add(new Country());
                        }
                    }
                    Console.WriteLine("Коллекция создана.");
                    break;

                case 2:
                    if (myCollection == null)
                    {
                        Console.WriteLine("Объект пуст.");
                    }
                    else
                    {
                        foreach (Country country in myCollection)
                        {
                            country.Print();
                        }
                    }
                    break;

                case 3:
                    Console.WriteLine("Введите элемент для удаления: ");
                    if (!MyCollection <Country> .Remove(ref myCollection, new Country()))
                    {
                        Console.WriteLine("Объект не найден");
                    }
                    else
                    {
                        Console.WriteLine("Объект удален");
                    }
                    break;

                case 4:
                    Console.WriteLine("Введите элемент для добавления: ");
                    myCollection.Add(new Country());
                    break;

                case 5:
                    Console.WriteLine("Кол-во элементов: " + myCollection.Count);
                    break;

                case 6:
                    Console.WriteLine("Введите элемент для поиска: ");
                    if (myCollection.Contains(new Country()) == -1)
                    {
                        Console.WriteLine("Элемент не найден");
                    }
                    else
                    {
                        Console.WriteLine("Элемент найден");
                    }
                    break;

                case 7:
                    myCollection.Dispose();
                    myCollection = null;
                    Console.WriteLine("Список удален из памяти");
                    break;
                }
                Console.ReadKey();
            }
        }