繁体   English   中英

在C#控制台应用程序中按下按钮时添加项目

[英]Adding items when a button is pressed in c# console application

我一直在研究一个小型的控制台应用程序,该应用程序具有一个项目列表,当按下数字时,相关项目应计算为总数(完成)。

问题在于如何将这些项目添加到列表视图并在控制台应用程序中显示它们。 这就是我到目前为止所拥有的

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace SuperMarcado
{
    class MainClass
    {
        public static void Main(string[] args)
        {

            ShoppingCart myCart = new ShoppingCart();

            Product[] shopProducts = new Product[]
            {
                new Product("Cheese", 6, "Milk Cheese", "3/12/2016", 4),
                new Product("Bread", 2, "Grain Bread", "27/11/2016", 8),
                new Product("Ice Cream", 10, "Ice Cream", "09/11/2001", 1),
                new Product("Cookies", 100, " Chocolate Cookies", "00/00/0000", 5),
                new Product("Biscuits", 0.25f, "Vanila ", "08/01/2006", 6)
            };

            Shop shop = new Shop(shopProducts);
            shop.DisplayProducts();
            Console.WriteLine("------------------------------------------------------------");

            myCart.printY = Console.CursorTop;
            myCart.Display();
            ConsoleKeyInfo input;


            while ((input = Console.ReadKey(true)).Key != ConsoleKey.Escape)
            {
                if (!Char.IsDigit(input.KeyChar))
                    return;
                int index = Convert.ToInt16(input.KeyChar.ToString()) - 1;

                if (index < 1 || index > shop.products.Length)
                    return;

                myCart.AddProduct(shop.products[index]);

                shop.DecreaseAmount(shop.products[index]);

                shop.DisplayProducts();

                myCart.Display();



                int userInput = 0;
                do
                {

                    userInput = ShoppingCart();

                } while (userInput != 5);
            }

        }
        static public int ShoppingCart()
        {
            Console.WriteLine("Your cart");
            Console.WriteLine();
            var result = Console.ReadLine();
            return Convert.ToInt32(result);
        }


    }
}

首先,您的问题是第二个循环,将其删除,它应该可以正常工作

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace SuperMarcado
{
class MainClass
{
    public static void Main(string[] args)
    {

        ShoppingCart myCart = new ShoppingCart();

        Product[] shopProducts = new Product[]
        {
            new Product("Cheese", 6, "Milk Cheese", "3/12/2016", 4),
            new Product("Bread", 2, "Grain Bread", "27/11/2016", 8),
            new Product("Ice Cream", 10, "Ice Cream", "09/11/2001", 1),
            new Product("Cookies", 100, " Chocolate Cookies", "00/00/0000", 5),
            new Product("Biscuits", 0.25f, "Vanila ", "08/01/2006", 6)
        };

        Shop shop = new Shop(shopProducts);
        shop.DisplayProducts();
        Console.WriteLine("------------------------------------------------------------");

        myCart.printY = Console.CursorTop;
        myCart.Display();
        ConsoleKeyInfo input;


        while ((input = Console.ReadKey(true)).Key != ConsoleKey.Escape)
        {
            if (!Char.IsDigit(input.KeyChar))
                return;
            int index = Convert.ToInt16(input.KeyChar.ToString()) - 1;

            if (index < 1 || index > shop.products.Length)
                return;

            myCart.AddProduct(shop.products[index]);

            shop.DecreaseAmount(shop.products[index]);

            shop.DisplayProducts();

            myCart.Display();



            //int userInput = 0;
            //do
            //{

            //    userInput = ShoppingCart();

            //} while (userInput != 5);
        }

    }

    //static public int ShoppingCart()
    //{
    //    Console.WriteLine("Your cart");
    //    Console.WriteLine();
    //    var result = Console.ReadLine();
    //    return Convert.ToInt32(result);
    //}
}
}

购物车类

using System;
using System.Collections.Generic;

namespace SuperMarcado
{
internal class ShoppingCart
{
    internal int printY;
    internal List<Product> productList;

    public ShoppingCart()
    {
        productList = new List<Product>();
    }

    internal void Display()
    {
        if (productList.Count == 0)
            Console.WriteLine("------------------ EMPTY CART------------------ ");

        foreach (var prod in productList)
            Console.WriteLine(prod.Name + " value: " + prod.Value);
    }

    internal void AddProduct(Product product)
    {
        productList.Add(product);
    }
}
}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM