Условие:
С помощью структур (списка) решить: Набор материалов, имеющихся на складе, с разбивкой по виду товара. Количество видов товаров и штук каждого товара задать самостоятельно. Составить модуль формирования двух новых списков из исходного списка товаров. В первый список попадают номера товаров меньше некоторого заданного, во второй — больше
Проблема в "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)
Виртуальный выделенный сервер (VDS) становится отличным выбором
Я создаю что-то вроде компилятора в своей программе(смрис
Как в приложении wpf изменить цвет строки состояния(панели на которой расположны кнопки "свернуть" "маштабировать" "закрыть")? Например чтобы...
Есть таблица ImageВ ней есть несколько полей (интересуют id ImageName, они должны быть равны)
Мне нужно получить все id страниц пользователе с заданным именем и фамилиейОднако Vk api выдает только первые 1000 страниц Условно, если "Павел...