C# 向对象动态添加嵌套列表

C# 向对象动态添加嵌套列表,c#,C#,我需要向对象添加嵌套列表。我有一个购物车,上面有物品清单。我正在尝试将该项目列表与其他属性一起作为字符串对象发送。我把我的名单翻了一遍 public string SendOrderEmailBody() { var connection = DependencyService.Get<ISQLite>().GetConnection(); var orderData = connection.Table<Item

我需要向对象添加嵌套列表。我有一个购物车,上面有物品清单。我正在尝试将该项目列表与其他属性一起作为字符串对象发送。我把我的名单翻了一遍

public string SendOrderEmailBody()
        {
            var connection = DependencyService.Get<ISQLite>().GetConnection();
            var orderData = connection.Table<ItemCartModel>().ToList();
            float totalCost = 0f;
            List<PlaceOrderModel> orderModel = new List<PlaceOrderModel>();
            for (int i = 0; i < orderData.Count; i++)
            {
                totalCost += (orderData[i].ItemPrice * orderData[i].ItemQuantity);
                orderModel = new List<PlaceOrderModel>
                {
                    new PlaceOrderModel()
                    {
                        PlacedOrderItemname = orderData[i].ItemName,
                        PlacedOrderQuantity = orderData[i].ItemQuantity,
                        PlacedOrderItemDough = orderData[i].ItemDough,
                        PlacedOrderItemSauce = orderData[i].ItemSauce,
                        PlacedOrderItemPrice = orderData[i].ItemPrice
                    }
                };
                TotalCost = totalCost;
            }
            Order OrderDetails = new Order
            {
                UserName = NameText,
                UserPhone = PhoneText,
                OrderItems = orderModel,
                TotalCost = totalCost
            };
            var content = JsonConvert.SerializeObject(OrderDetails);
            return content;
        }
公共字符串SendOrderEmailBody()
{
var connection=DependencyService.Get().GetConnection();
var orderData=connection.Table().ToList();
浮动总成本=0f;
List orderModel=new List();
for(int i=0;i
此方法确实发送列表,但仅发送购物车中的最后一个项目。 我订购的型号是

public class Order
    {
        public string UserName { get; set; }
        public string UserPhone { get; set; }
        public float TotalCost { get; set; }
        public List<PlaceOrderModel> OrderItems { get; set; }
    }
公共类秩序
{
公共字符串用户名{get;set;}
公共字符串UserPhone{get;set;}
公共浮动总成本{get;set;}
公共列表OrderItems{get;set;}
}

我的解决方案只是在for循环中循环,而不是将整个购物车项目添加到orderModel。

列表中只保留最后一个项目的原因是因为行
orderModel=new list
实例化了一个新的下订单模型列表

一个快速的解决方案是添加一个项目,而不是重新实例化
orderModel

orderModel.Add(new PlaceOrderModel()
{
    PlacedOrderItemname = orderData[i].ItemName,
    PlacedOrderQuantity = orderData[i].ItemQuantity,
    PlacedOrderItemDough = orderData[i].ItemDough,
    PlacedOrderItemSauce = orderData[i].ItemSauce,
    PlacedOrderItemPrice = orderData[i].ItemPrice
});

我认为这一行是错误的,
orderModel=newlist
,因为您正在每个循环中更新列表。尝试使用
orderModel.Add()
。谢谢。这很管用,但我发誓我昨天也试过。我不知道出了什么问题。@shankslimbutha很好。作为软件工程师,我们都有这样的时刻