【发布时间】:2018-11-06 20:57:20
【问题描述】:
请参考以下代码
List<ProductDM> productDMList = _orderRepo.GetProductList(32, 12);
for (int i=0;i<productDMList.Count;i++)
{
productDMList[i].CabinetList[i].Min = productDMList[i].Min;
productDMList[i].CabinetList[i].Max = productDMList[i].Max;
}
public class ProductDM
{
public List<InventoryDM> CabinetList { get; set; }
public double Min { get; set; }
public double Max { get; set; }
}
public class InventoryDM
{
public Double Min { get; set; }
public Double Max { get; set; }
}
要求是循环遍历productDMList并将返回的MIN和MAX值绑定到cabinet列表中。 ProductDM 填充了 MIN 和 MAX 数量,但将它们分配给 CabinetList 时,它会返回错误。
这是因为 CabinetList 最初是空的,并且其中没有显示 MIN MAX 属性。
我正在使用上面的代码分配数据但返回
对象引用未设置为对象的实例。
因为 CabinetList 为空。
这里如何初始化橱柜列表???
【问题讨论】:
-
通过在构造函数中创建一个新列表并将其分配给
CabinetList? 声明一个成员并不隐含创建一个实例。列表在开始时应该包含什么? -
ProductDM需要一个带有List<InventoryDM>参数的构造函数 -
在你的
ProductDM构造函数中,输入CabinetList = new List<InventoryDM>(), -
@HimBromBeere 最初 MIN 和 MAX = 0
-
除了之前的 cmets:在分配
Min和Max时,使用List<>的Add()方法来避免 ArgumentOutOfRangeException。productDMList[i].CabinetList.Add(new InventoryDM {Min = productDMList[i].Min, Max = productDMList[i].Max});
标签: c# arrays list initialization