2016-12-27 68 views
0

我一直在研究一个包含项目列表的小控制台应用程序,并且当按下一个数字时,相关项目应计算为总数(完成后)。在c#控制台应用程序中按下按钮时添加项目

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

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); 
     } 


    } 
} 
+1

什么你的问题到底是什么? –

+0

如何添加商品并制作购物车,并在数字按下时随时显示。 –

+0

这就是你想要它做的。你没有说明什么是做错了什么,或者它没有做什么,你坚持。 –

回答

0

在第一次拿到,你的问题是第二个循环,删除它,它应该工作打算

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); 
    } 
} 
} 
+0

但不显示所选项目... –

+0

然后您需要在您的类_ShoppingCart_中实现您的方法_Display_,方法为迭代由_AddProduct_添加的产品 –

相关问题