Условие:
С помощью структур (списка) решить: Набор материалов, имеющихся на складе, с разбивкой по виду товара. Количество видов товаров и штук каждого товара задать самостоятельно. Составить модуль формирования двух новых списков из исходного списка товаров. В первый список попадают номера товаров меньше некоторого заданного, во второй — больше
Проблема в "Case 3". То есть я хочу сравнить весь изначальный список товаров с заданным числом "int Pod" и занести все товары которые больше заданного "Pod" в новый list. Не могу понять, что я делаю не так.
Все товары которые больше заданного "Pod", заносятся в List bolshe, товары которые меньше заданного "Pod" заносятся в List menshe
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace lab9
{
class Program
{
static void Main(string[] args)
{
List<string> list = new List<string>();
List<string> nomer1 = new List<string>();
List<string> menshe = new List<string>();
List<string> bolshe = new List<string>();
while (true)
{
Console.Clear();
Console.WriteLine("1) Добавление нового товара");
Console.WriteLine("2) Вывод всех товаров");
Console.WriteLine("3) Вывод товаров, которые выше указанного числа");
Console.WriteLine("4) Выход");
int nav = 0;
try
{
nav = Convert.ToInt32(Console.ReadLine());
}
catch (FormatException)
{
Console.WriteLine("Ошибка!");
}
switch (nav)
{
case 1:
st BIP; string temp = null; string nomer2 = null;
Console.Write("Введите номер товара: ");
nomer2 += "1) Номер: " + (BIP.nomer = Console.ReadLine()) + "\n";
Console.Write("Введите количество товара: ");
temp += "2) Количество: " + (BIP.kolichestvo = Console.ReadLine()) + "\n";
Console.Write("Введите наименование товара: ");
temp += "3) Наименование: " + (BIP.naimenovanie = Console.ReadLine()) + "\n";
list.Add(nomer2 + temp);
nomer1.Add(nomer2);
break;
case 2:
foreach (string i in list)
{
Console.WriteLine(i);
}
Console.ReadKey();
break;
case 3:
Console.WriteLine("Введите число для вывода: ");
int pod = Convert.ToInt32(Console.ReadLine());
for (int j = 0; j < list.Count; j++)
{
if (nomer1[j] > pod)
{
Console.WriteLine(list[j]);
}
}
Console.ReadKey();
break;
case 4: return;
}
}
}
}
struct st
{
public string nomer;
public string kolichestvo;
public string naimenovanie;
}
}
В строке if (nomer1[j] > pod) вы сравниваете строку с числом, что в c# запрещено
Плюс в списке nomer вы храните строки вида "Номер: n", поэтому простого преобразования типа для сравнения будет мало.
Храните в списке или только числа, используя тип данных int, или структуры st и тогда сравнивайте if (nomer1[j].nomer > pod)
Основные этапы разработки сайта для стоматологической клиники
Продвижение своими сайтами как стратегия роста и независимости