C# 如何创建连接列表?

C# 如何创建连接列表?,c#,C#,我正在做一个学校项目,希望我在C控制台项目中设计一个餐馆应用程序。 有一部分让我很困惑 这家餐厅有以下标准季节的食物清单 -Pizza -Beef -Steak -Lasagna 但是,请注意,此列表会根据添加的 在特殊的时间或事件中吃一些特殊的食物 对于食品,客户可能会添加以下内容。此列表也对 在将来扩展 -Potatoes -Ketchup -Garlic Sauce 下面是一些客户请求的示例 -Beef with potatoes -Steak wi

我正在做一个学校项目,希望我在C控制台项目中设计一个餐馆应用程序。 有一部分让我很困惑

这家餐厅有以下标准季节的食物清单

  -Pizza
  -Beef
  -Steak
  -Lasagna
但是,请注意,此列表会根据添加的 在特殊的时间或事件中吃一些特殊的食物

对于食品,客户可能会添加以下内容。此列表也对 在将来扩展

  -Potatoes
  -Ketchup
  -Garlic Sauce
下面是一些客户请求的示例

  -Beef with potatoes
  -Steak with double(2x) garlic sauce
  -Lasagna with Ketchup and Garlic Sauce
我定义了一个类来保存属性中的变量,如下所示

public class Food: IFood
    {
        public string FoodName { get; set; }
        public int FoodQuantity { get; set; }
        public decimal FoodPrice { get; set; }
        public List<Addition> Additions { get; set; }
    }
    cart.Items.Add(new Food{ FoodName = "Beef ", FoodQuantity = 1, FoodPrice = 7M, new Addition {AdditionName = "", AdditionPrice = "", AdditionQuantity = "" });
但它不让我,并给我以下的错误; “无效的初始值设定项成员声明符”
有没有什么办法可以让我把点餐的食物类型和添加的食物联系起来?

你的语法有点错误。首先,您没有指定Additions属性的名称,其次,您需要为该属性指定一个列表,而不仅仅是单个项。例如:

cart.Items.Add(new Food
{
    FoodName = "Beef ",
    FoodQuantity = 1,
    FoodPrice = 7M,
    Additions = new List<Addition>
    {
        new Addition { AdditionName = "", AdditionPrice = "", AdditionQuantity = "" }
    }
});

你的语法有点错误。首先,您没有指定Additions属性的名称,其次,您需要为该属性指定一个列表,而不仅仅是单个项。例如:

cart.Items.Add(new Food
{
    FoodName = "Beef ",
    FoodQuantity = 1,
    FoodPrice = 7M,
    Additions = new List<Addition>
    {
        new Addition { AdditionName = "", AdditionPrice = "", AdditionQuantity = "" }
    }
});
如果添加列表为空,则应使用:

cart.Items.Add(new Food { FoodName = "Beef ", FoodQuantity = 1, 
    FoodPrice = 7M, Additions = new List<Addition>() };
现在,您可以编写如下内容:

 var food = new Food("Beef", 1, 7M);
 food.Additions.Add(new Addition { AdditionName = "Garlic", AdditionPrice = 0.1, 
      AdditionQuantity = 1 });
 cart.Items.Add(food);
如果添加列表为空,则应使用:

cart.Items.Add(new Food { FoodName = "Beef ", FoodQuantity = 1, 
    FoodPrice = 7M, Additions = new List<Addition>() };
现在,您可以编写如下内容:

 var food = new Food("Beef", 1, 7M);
 food.Additions.Add(new Addition { AdditionName = "Garlic", AdditionPrice = 0.1, 
      AdditionQuantity = 1 });
 cart.Items.Add(food);

您正在向Additions初始值设定项传递一个加法,但已将其定义为列表。您需要将其初始化为列表。此外,您可能应该在这里使用构造函数,因为定义食物实例肯定需要所有属性。我应该如何将列表与示例用户请求中的食物类型连接起来?您做得很对,因此似乎只是语法问题。正确初始化添加项。您还可以使用Enum作为FoodType或AdditionType作为Food and Addition中的属性来替换字符串名称,否则您将在以后获得土豆、土豆和土豆。实际上,您还可以将价格存储在其他地方,在订单之间不会改变。所以你需要一个FoodPrice和AdditionPrice类。然后你可以填一本字典,你可以用它来计算每种食物的价格。然后计算变得很简单:decimal finalPrice=foodPrices[FoodType]*FoodQuantity+additionPrices[AdditionType]*AdditionQuantity您正在将一个添加传递给Additions初始值设定项,但您已经将其定义为一个列表。您需要将其初始化为列表。此外,您可能应该在这里使用构造函数,因为定义食物实例肯定需要所有属性。我应该如何将列表与示例用户请求中的食物类型连接起来?您做得很对,因此似乎只是语法问题。正确初始化添加项。您还可以使用Enum作为FoodType或AdditionType作为Food and Addition中的属性来替换字符串名称,否则您将在以后获得土豆、土豆和土豆。实际上,您还可以将价格存储在其他地方,在订单之间不会改变。所以你需要一个FoodPrice和AdditionPrice类。然后你可以填一本字典,你可以用它来计算每种食物的价格。然后计算变得简单:十进制最终价格=食品价格[FoodType]*食品数量+附加价格[AdditionType]*附加数量这是一个很好的解决方案!!你能告诉我这种结构的总价是怎么计算的吗?假设这是一辆购物车,我想得到基于食品价格和食品添加剂价格的总价格。这是一个新问题。我建议你在带着一个新问题回到这里之前试着弄清楚。这是一个很好的解决方案!!你能告诉我这种结构的总价是怎么计算的吗?假设这是一辆购物车,我想得到基于食品价格和食品添加剂价格的总价格。这是一个新问题。我建议你在带着一个新问题回到这里之前试着把它弄清楚。很棒的解决方案,非常感谢!!你能告诉我如何到达这个添加列表的内部并显示它的元素值吗;Console.WriteLineOrdered饮料:;cart.Items{Console.WriteLineBeverage Name:+item.BeverageName;Console.WriteLineAdditions:;cart.Items.Additions中的foreach变量添加{Console.WriteLineAddition:+cart.Items.Additions;}}尝试使用Console.WriteLineAddition:+addition.Name;对于未来,最好开始一个新的问题,以避免评论中的垃圾。这太棒了,非常感谢!!非常棒的解决方案,非常感谢!!你能告诉我如何到达这个添加列表的内部并显示它的元素值吗;Console.WriteLineOrdered饮料:;
cart.Items{Console.WriteLineBeverage Name:+item.BeverageName;Console.WriteLineAdditions:;cart.Items.Additions中的foreach变量添加{Console.WriteLineAddition:+cart.Items.Additions;}}尝试使用Console.WriteLineAddition:+addition.Name;对于未来,最好开始一个新的问题,以避免评论中的垃圾。这太棒了,非常感谢!!