将项目添加到对象列表C#

时间:2019-01-08 18:36:15

标签: c# asp.net asp.net-mvc

我有一个像下面这样的类,我需要在其中添加项目,但是它显示``对象引用不是对象的瞬间''错误

DTO

   public class CartTotal
{
    public int Id{ get; set; }
    public string Name{ get; set; }

    public List<Items> items { get; set; }
}

我尝试添加如下内容,

            CartTotal cartTotal = new CartTotal();

            cartTotal.items.Add(new Items {
                ItemId = items.ItemId,
                ItemName = items.ItemName,
                ItemPrice = items.ItemPrice,
                ImageUrl = items.ImageUrl,
                ItemCode = items.ItemCode
            });

 cartTotal.SubTotal = subTotal;
 cartTotal.DeliveryCharges = deliveryCharge;
 cartTotal.GrandTotal = grandTotal;

1 个答案:

答案 0 :(得分:1)

您首先需要创建一个列表并向其中添加项目:

cartoTotal.items = new List<Items>();

那么您就可以有资格写作:

 cartTotal.items.Add(new Items {
              ItemId = items.ItemId,
              ItemName = items.ItemName,
              ItemPrice = items.ItemPrice,
              ImageUrl = items.ImageUrl,
              ItemCode = items.ItemCode
});

使用默认构造函数创建对象的实例时,对象的属性将分配其默认值。对于引用类型(如List<T>一样,默认值为null)。因此,通过如下创建CartTotal的实例:

CartTotal cartTotal = new CartTotal();
结果cartTotal.items

为空。而且,当您调用任何List<T>方法时,都会导致空引用异常。