c# - 通过 for 循环初始化带有 Lists<int> 的交错数组

标签 c# .net list jagged-arrays

当我想将项目添加到锯齿状数组中的元素时,我收到 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);
}

最佳答案

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

所以当你调用Add时在未初始化的元素上,即 List<int>你得到了异常(exception)。

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);

关于c# - 通过 for 循环初始化带有 Lists<int> 的交错数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37054008/

相关文章:

c# - 将米转换为公里并在 Viewmodel 中格式化值

C#:在另一个函数中使用本地对象

c# - EqualityComparerer<T>.Default.Equals() 与 object.Equals() 和多态性

c# - 使用 LINQ 分隔列表元素并将结果插入回列表

c# - 预期对模拟调用一次,但为 0 次 未执行任何调用

.net - 如何在 WPF 中创建基页?

c# - 如何比较两个泛型类型?

javascript - 如何使用 javascript 将复选框添加到列表

Python,如何根据总和对列表进行排序

r - 使用每个小标题中的名称从小标题列表中选择变量