Сгенерировать обьекты в список - C#

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

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

Привет! Помоги решить вот такую задачу.
// класс продукт
class Product
    {
        public string Name { get; set; }
        public decimal Price { get; set; }
     }
 
// класс номенклатура
class ProductList
    {
       public List<Product> List { get; set; }
     }

Задача:

Необходимо сделать генератор номенклатуры по принципу: ввожу в консоль несколько названий через запятую, метод генерирует продукты в список с рандомной ценой, так чтобы метод сам создавал экземпляры. Вызываю метод, ввожу строку, разбиваю ее на массив названий.
...
foreach (string name in articleNames)
            {
                int currentPrice = randomizer.Next(1, 100);
                 // добавляю продукт в экземпляр ProductList через метод AddArticleToList(){List.Add(Product _newprod);})
                ProductList.AddArticleToList(new Product(name, currentPrice));
                
            }

В результате ошибка:

{"Ссылка на объект не указывает на экземпляр объекта."} Спасибо.

Решение задачи: «Сгенерировать обьекты в список»

textual
Листинг программы
using System;
using System.Collections.Generic;
 
namespace ConsoleApplication1
{
    class Program
    {
        #region Entry point
 
        private static Program _program;
 
        private static void Main(string[] args)
        {
            _program = new Program();
            _program.Run(args);
        }
 
        #endregion
 
        private void Run(string[] args)
        {
            Random random = new Random();
 
            ProductList prodList = new ProductList();
            string[] names = { "Cola", "Pepsi", "Fanta" };
 
            foreach (string name in names)
            {
                decimal currentPrice = random.Next(50, 100);
 
                prodList.Products.Add(new Product(name, currentPrice));
            }
 
            Display(prodList);
 
            Console.ReadKey();
        }
 
        private void Display(ProductList prodList)
        {
            Console.WriteLine("Наименование:\tЦена:");
            foreach (var product in prodList.Products)
            {
                Console.WriteLine("{0}\t\t{1}", product.Name, product.Price);
            }
        }
    }
 
    class Product
    {
        public Product(string name, decimal price)
        {
            Name = name;
            Price = price;
        }
        public string Name { get; set; }
 
        // Вообще c деньгами в decimal обычно дела делаются.
        public decimal Price { get; set; }
    }
 
    class ProductList
    {
        public ProductList()
        {
            Products = new List<Product>();
        }
 
        public List<Product> Products { get; protected set; }
    }
}

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


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

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

5   голосов , оценка 3.8 из 5