C# 将列表的列表传输到二维数组
好的,我正在尝试获取一个2D数组,在xml文件中序列化,然后能够加载它。主要部分可以工作,但我发现(可能是错误的)在内容管道读写器中不能使用2d数组。我已将2d数组替换为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数组的数据。这就是我目前所知道的,但它引发了一个空引用异常:
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的一部分,因此我认为它不会有多大改变