C# 试图使用对象填充列表<&燃气轮机;并获取用于计算的属性

C# 试图使用对象填充列表<&燃气轮机;并获取用于计算的属性,c#,arrays,winforms,list,object,C#,Arrays,Winforms,List,Object,因此,我的任务是创建一个Windows窗体,其中有一些简单的按钮来处理单击事件,用于计算订单总额并使用单独的类进行显示,还有一个单击事件用于显示当天的订单总额详细信息(暗示使用私有arraylist或列表) 该计划是比萨饼店的一个简单销售点环境。我有三个文本框供用户输入 (int numberOfCokes, int numberOfPizzas, double cashGiven). 我有一个“计算总数”按钮,它实例化了PizzaOrder类的一个对象(我称之为order),并使用方法计算

因此,我的任务是创建一个Windows窗体,其中有一些简单的按钮来处理单击事件,用于计算订单总额并使用单独的类进行显示,还有一个单击事件用于显示当天的订单总额详细信息(暗示使用私有
arraylist
列表

该计划是比萨饼店的一个简单销售点环境。我有三个文本框供用户输入

(int numberOfCokes, int numberOfPizzas, double cashGiven). 
我有一个“计算总数”按钮,它实例化了
PizzaOrder
类的一个对象(我称之为
order
),并使用方法计算它,然后将所有输出返回到gui端的消息框中。这是成功的

我现在的问题是,我有一个
DisplaySummary
类,它应该合计当天的订单总数、比萨饼的销售总额和美元金额,以及可乐的销售总额和美元金额

我试图使用
List OrderList=new List()
作为存储订单对象的方式,但我不知道如何获取和计算每个对象的属性。我应该在这个类中使用至少三个方法,并在单击DisplaySummary按钮时将输出传递到多行文本框


我真的很想得到一些指导

我不确定PizzaOrder类中有哪些方法和字段,但假设其中有Pizza和cokes的成本,您可以为订单数量添加一个静态字段,该字段在每次实例化该类的新对象时递增,一个用于Pizza总成本的静态字段,焦炭成本的静态字段

比如:

class PizzaOrder(){
    private static int totalOrders=0;
    private static double totalPizza=0;
    private static double totalCokes=0;
    public PizzaOrder(){
    totalOrders++;
    //Other stuffs
    }
    public static int GetTotalOrders(){
    return totalOrders;
    }
    public void AddPizza(double costOfPizza){
    totalPizza+=costOfPizza;
    }
    public static double GetTotalPizza(){
    return totalPizza;
    }
    //Something similar for cokes

}

当然,您可以对单个属性使用setter和getter,但由于您似乎刚刚开始,我认为这样做会更容易。

因此,我将给您一些建议,让您完成详细信息

     List<PizzaOrder> orders = new List<PizzaOrder>(); // in summary class 

     // in onclick handler for Calc total
     orders.Add(newInstance);

     // in the display part of summary class
     int totalCokes = orders.Aggregate((c, n) => c.numberOfCokes + n.numberOfCokes);
     int cokeRevenue = totalCokes * PriceOfACoke;
      //ect
List orders=new List();//小结课
//计算总计的onclick处理程序中
orders.Add(newInstance);
//在summary类的显示部分
int totalCokes=订单.合计((c,n)=>c.numberOfCokes+n.numberOfCokes);
int cokeRevenue=总焦炭*焦炭价格;
//ect

因此,基本上,我建议您列出类型
PizzaOrder
。每次收到新订单时,都会将其添加到列表中。当用户想要查看摘要时,可以迭代列表,或者使用上面我的聚合查询之类的LINQ查询来获取总计并将其显示给用户。一个简单的
foreach
会比我拥有的更容易。在这个类中,你可以拥有这些属性,比如说totalcokes,为循环体中的每个对象加上值,然后你就可以从循环外部得到总美元(我称之为
cokeRevenue
)。有一种方法可以计算总数,有另一种方法可以用于显示层(在文本框或其他任何地方设置值)。

OP说他们应该使用
列表
,这只是用一种廉价的方法绕过了这个问题(将总计作为静态字段保存在类中,而不是将实例放在容器中并对其进行操作)。没有读到(在未编辑的版本中)这是一项要求。考虑到他才刚刚开始,我想向他暗示一个更简单的解决方案,他肯定已经研究过构造。