Проверка наличия элемента в массива и удаление из массива - C#

Узнай цену своей работы

Формулировка задачи:

чтобы понять на практике что такое массивы, я решил сделать примитивную программу. смысл такой: есть рюкзак (inventory) в нём два места. перед пользователем лежит выбор 4 предмета (item). чтобы взять предмет - нужно написать слово. эту часть программы я сделал. 1) а вот как сделать так чтобы если введённое слово не является ни одним из элементов массива item то выдавалось сообщение "нет таких предметов" и повторялся ввод. 2) если всё таки взяли предмет из массива item то как сделать так чтобы этот элемент удалялся из массива item.
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace ConsoleApplication1
{
    class Program
    {
 
        static string[] inventory = { "", "" }; // ИНВЕНТАРЬ
 
        static string[] item = { "яблоко", "груша", "помидор", "огурец" }; //СПИСОК предметов, которые можно взять

        static void Main(string[] args)
        {
            while (!workWithUser()) ;
        }
        static bool workWithUser()
        {
            menu();                                         //запускаем меню чтобы показать, что лежит в рюкзаке
            if (inventory[0] == "" || inventory[1] == "")   //если ХОТЯ БЫ ОДИН СЛОТ ПУСТОЙ
            {                       
                input();                                    //берём предмет
                return false;                               // программа продолжает работу
            }
 
            if (inventory[0] != "" && inventory[1] != "")   //если ВСЕ СЛОТЫ ЗАНЯТЫ
            {
                return true;                                //Выходим из программы.
            }
 
            return false;
 
        }
        static bool menu()                                  //меню, показывающее что в рюкзаке
        {
            Console.Clear();
                 Console.WriteLine("у вас есть:\n1: {0}\n2: {1}\n", inventory[0], inventory[1]);
            return false;
        }
        static bool input()                                 //функция для выбора предмета
        {
 
            for (int i = 0; i < 2; i++)
            {
                menu();
                Console.WriteLine("что хотите положить в рюкзак:\n {0}\n {1}\n {2}\n {3}\n", item[0], item[1], item[2], item[3]);
                if (inventory[i] == "")
                {
                    inventory[i] = Console.ReadLine();
                    return false;
                }
            }
            return false;
        }
        
    }
}

Решение задачи: «Проверка наличия элемента в массива и удаление из массива»

textual
Листинг программы
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
 
 
namespace ConsoleApplication1
{
    class Program
    {
 
        static string[] inventory = { "", "" }; // ИНВЕНТАРЬ
 
        static string[] item = { "яблоко", "груша", "помидор", "огурец" }; //СПИСОК предметов, которые можно взять
 
        static bool checker = false;
 
 
 
        static void Main(string[] args)
        {
            while (!workWithUser()) ;
        }
        static bool workWithUser()
        {
            menu();                                         //запускаем меню чтобы показать, что лежит в рюкзаке
            if (inventory[0] == "" || inventory[1] == "")   //если ХОТЯ БЫ ОДИН СЛОТ ПУСТОЙ
            {
                input();                                    //берём предмет
                return false;                               // программа продолжает работу
            }
 
            if (inventory[0] != "" && inventory[1] != "")   //если ВСЕ СЛОТЫ ЗАНЯТЫ
            {
                return true;                                //Выходим из программы.
            }
 
            return false;
 
        }
        static bool menu()                                  //меню, показывающее что в рюкзаке
        {
            Console.Clear();
            Console.WriteLine("у вас есть:\n1: {0}\n2: {1}\n", inventory[0], inventory[1]);
            return false;
        }
        static bool input()                                 //функция для выбора предмета
        {
            string msg;
            for (int i = 0; i < 2; i++)
            {
                menu();
                Console.WriteLine("что хотите положить в рюкзак:\n {0}\n {1}\n {2}\n {3}\n", item[0], item[1], item[2], item[3]);
                if (inventory[i] == "")
                {
                    while(true)//спрашиваем, пока не будет введен существующий айтем
                    {
                        msg = Console.ReadLine();
                        checker = checkForItems(msg);
                        if (checker)
                            break;
                        Console.WriteLine("Oops! Такой товар не существует. Введите новый");
                    }
 
                    inventory[i] = msg;
                    return false;
                }
            }
            return false;
        }
        static bool checkForItems(string msg)
        {
            for(int i = 0; i < item.Length; i++)
            {
                if (msg == item[i])
                {
                    return true;//совпадение введеного пользователем в инвентаре
                }
            }
            return false; // совпадений не было
        }
 
    }
}

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

15   голосов , оценка 3.933 из 5
Похожие ответы