通过for循环初始化带有Lists <int>的锯齿状数组

时间:2016-05-05 15:04:07

标签: c# .net list jagged-arrays

当我想在jagged数组中将元素添加到我的元素时,我得到NullReferenceException。

public List<int>[][] Map;

void Start()
{
    Map = new List<int>[60][];
    for(byte x = 0; x < 60 ; x++)
    {
        Map[x] = new List<int>[60];
        // initialization of rows
    }

    Map [23] [34].Add (21);
}

1 个答案:

答案 0 :(得分:2)

你有一个锯齿状的数组,其每个元素都是List<int>。您初始化数组但不是元素。

因此,当您在未初始化的元素Add上调用List<int>时,您会获得异常。

Map = new List<int>[60][];
for (int x = 0; x < 60; x++)
{
    Map[x] = new List<int>[60];

    for (int y = 0; y < 60; y++)
    {
        Map[x][y] = new List<int>(); // initializing elements
    }
    // initialization of rows
}

Map[23][34].Add(21);