Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/list/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 将列表的列表传输到二维数组_C#_List_Multidimensional Array_Xna_Xna 4.0 - Fatal编程技术网

C# 将列表的列表传输到二维数组

C# 将列表的列表传输到二维数组,c#,list,multidimensional-array,xna,xna-4.0,C#,List,Multidimensional Array,Xna,Xna 4.0,好的,我正在尝试获取一个2D数组,在xml文件中序列化,然后能够加载它。主要部分可以工作,但我发现(可能是错误的)在内容管道读写器中不能使用2d数组。我已将2d数组替换为列表,但我仍然需要作为2d数组的数据。这就是我目前所知道的,但它引发了一个空引用异常: TILArray = new string[Width, Height];// I do initialize the array for (int x = 0; x < Width; x++) { for (int y =

好的,我正在尝试获取一个2D数组,在xml文件中序列化,然后能够加载它。主要部分可以工作,但我发现(可能是错误的)在内容管道读写器中不能使用2d数组。我已将2d数组替换为
列表
,但我仍然需要作为2d数组的数据。这就是我目前所知道的,但它引发了一个空引用异常:

TILArray = new string[Width, Height];// I do initialize the array

for (int x = 0; x < Width; x++)
{
    for (int y = 0; y < Height; y++)
    {
        if (TILList[x][y] != null)
        {
            Tiles[x, y] = Content.Load<Tile>(TILList[x][y]);
            TILArray[x, y] = TILList[x][y];// This line throws the exception
        }
    }
}
An unhandled exception of type 'System.NullReferenceException' occurred in TileEngine.dll

Additional information: Object reference not set to an instance of an object.
编辑:我一直在测试它,它似乎只在循环中抛出异常。当我尝试在循环外部设置TILArray[0,0]时,它工作正常,但在循环中它不工作,并引发异常

编辑:哇,我刚刚发现,如果我将引发异常的行移到这行上方:

Tiles[x, y] = Content.Load<Tile>(TILList[x][y]);
Tiles[x,y]=Content.Load(TILList[x][y]);
它说异常是在只包含
}
的行中引发的

编辑:我又做了一些测试,发现问题不在于复制到阵列。 当我注释掉抛出异常的行时,它仍然抛出异常!
是否有任何东西会导致游戏在没有任何代码的行中抛出NullReference异常?

是否考虑过数组数组?您可以使用
TILArray[]][]
而不是
TILArray[]]
,它与您的列表一样,是一个数组数组。serialiser应该能够处理这个问题。

由于某种原因,我需要使用这个数组的方法只接受2d数组,所以我仍然需要在某个点转换它。Till列表是一个列表,所以我需要使用Till列表[x][y]你能给我们看一下异常吗?异常发生在语句末尾,因为如果你看,它发生在TileEngine.dll中。如果创建了TileEngine库,则应使用原始库代码设置测试项目并测试此函数。如果没有,您可能需要检查以确保正确使用库。我发布的代码是TileEngine.dll的一部分,因此我认为它不会有多大改变