仅显示大于用户在C#中输入的值的值

时间:2017-12-05 09:09:18

标签: c#

问题

完成此产品订单管理器后,我的任务是添加一项功能,让用户输入一个双倍值,一旦输入,将只显示价格高于所选值的产品。

我迷失在如何开始添加这个额外选项以允许根据用户输入的内容过滤数据。

如果有人能指出我正确的方向,我会非常感激!

ConsoleView.cs

class ConsoleView
{
    public int ShowMenu()
    {
        Console.WriteLine("_________Menu________");
        Console.WriteLine("1) Add Orders");
        Console.WriteLine("2) See all orders");
        Console.WriteLine("3) Filter Orders");
        Console.WriteLine("4) exit");
        Console.WriteLine("______________________");
        Console.WriteLine("Please enter a selection (1-4):");

        return Convert.ToInt32(Console.ReadLine());
    }

    public Order AddOrder()
    {
        Console.WriteLine("What is the name of the product?");
        string name = Console.ReadLine();
        Console.WriteLine("What is the amount paid for the product?");
        double value = Convert.ToDouble(Console.ReadLine());

        return new Order(name, value);           
    }

    public void DisplayAllOrders(Order[] orders)
    {
        Console.WriteLine("___________ORDERS_____________");
        for (int i = 0; i< orders.Length; i++)
        {

            Console.WriteLine("Product Name: " + orders[i].GetOrders() + " - Amount Paid - " + orders[i].GetAmount());
        }
        Console.WriteLine("______________________________");
    }

    public void FilterOrder(Order filter)
    {
        Console.WriteLine("What numerical value would you like the information to be greater than?");
        double Value = Convert.ToInt32(Console.ReadLine());



    }


}

Order.cs

class Order
{

    private string orderName;
    private double orderAmount;

    public Order(string ProductName, double Price)
    {
        SetName(ProductName);
        SetAmount(Price);
    }

    public void SetName(string name)
    {
        orderName = name;
    }

    public string GetOrders()
    {
        return orderName;
    }

    public void SetAmount(double value)
    {
        orderAmount = value;
    }

    public double GetAmount()
    {
        return orderAmount;
    }

    public static void FilterPrices(double userNum)
    {
        int largeNum = priceArray[0];
    }
}

OrderManager.cs

class OrderManager
{
    private List<Order> orders;

    public OrderManager()
    {
        orders = new List<Order>();
    }

    public void AddOrder(Order order)
    {
        orders.Add(order);

    }

   public void setAmount(Order amount)
    {
        orders.Add(amount);
    }

    public Order[] GetOrder()
    {
        return orders.ToArray();
    }      
}

的Program.cs

static void Main(string[] args)
{
    ConsoleView view = new ConsoleView();
    OrderManager model = new OrderManager();
    int userSelection;

    do
    {
        userSelection = view.ShowMenu();
        if (userSelection == 1)
        {
            //Add orders

            model.AddOrder(view.AddOrder());                    
        }

        else if (userSelection == 2)
        {
            //Display Orders

            view.DisplayAllOrders(model.GetOrder());
        }
        else if (userSelection == 3)
        {
            //Filter Orders
            model.FilterOrder                   
        }
    }
    while (userSelection != 4);

2 个答案:

答案 0 :(得分:1)

oldscool的方法是使用一个循环遍历orders集合的方法,并检查每个顺序是否满足标准。

你可以从这样的方法开始

class OrderManager
{
    public List<Order> GetFilteredOrders(double minValue)
    {
          // make a second collection to collect the orders that will match the criterion
          // loop here through collection
          // check if(orders[i].GetAmout() > minValue)
          // collect them

          // return the collected items
    }
}

答案 1 :(得分:1)

试试这个:

public void FilterOrder(Order filter)
{
    Console.WriteLine("What numerical value would you like the information to be greater than?");
    double Value = Convert.ToInt32(Console.ReadLine());
    for (int i = 0; i< orders.Length; i++)
    {
       if(orders.get(i).GetAmount()>Value){
           //print orders.get(i) here
        }

    }

}