我正在尝试使用列表列表创建一个类,但无法使其工作:
public class Structure
{
public List<int> variable1 = new List<int>();
public double variable2 { get; set; }
}
public class StructureHolder
{
public List<Structure> variable3 = new List<Structure>();
public void InitLists()
{
variable3.Capacity = 1;
variable3[0].variable1.Capacity = 20;
}
public void SomeMethod()
{
//Perform operations on values storred in variable3[i].variable1
}
}
现在,当我创建类StructureHolder的SomeVariable并尝试访问SomeVariable.variable3 [0] .variable2时,我的范围错误。
EDIT1: 修复了这个问题,但我仍然超出了范围异常:
variable3.Capacity = 1;
variable3.Add(new Structure());
variable3[0].variable1.Capacity = 20;
variable3[0].variable1[0] = 123; //out off range error
答案 0 :(得分:0)
但是StructureHolder中的列表还没有包含任何元素。 你必须添加例如。
variable3.Capacity = 1;
variable3.Add(new Structure());
variable3[0].variable1.Capacity = 20;
答案 1 :(得分:0)
这是因为您正在尝试访问空列表。您只需初始化列表
public List<Structure> variable3 = new List<Structure>();
但从不添加一些元素:
variable3.Add(...);
因此,您需要在访问项目之前先添加项目:
variable3.Add(new Structure()); // adding item
variable3[0].variable2 = 100d; // accessing just added element field