Проверка наличия элемента в массива и удаление из массива - 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; // совпадений не было
}
}
}