【发布时间】:2010-11-17 11:15:13
【问题描述】:
我正在尝试编写一个包含数字生物的模型。在模型中,我认为环境是一个固定的二维数组,但每个单元格都需要包含其中的生物体列表。我尝试使用锯齿状数组,但由于在整个程序运行过程中占用元素的数量变化很大,我需要使用比数组更灵活的东西。我尝试制作类型列表的二维数组,但我遇到了错误。
List<Creature>[,] theWorld;
public Environment()
{
List<Creature>[,] theWorld = new List<Creature>[100,100];
}
public void addCreature(Creature c)
{
for (int x = 0; x < 100; x++)
{
for (int y = 0; y < 100; y++)
{
theWorld[x, y].Add (c);
} } }
这是我试图在开头声明数组的部分,作为保存(生物体)列表的类型,后来我尝试将生物(c)添加到每个列表中的每个列表中数组的元素。
当我运行它时,我收到以下错误消息-
“在 HGT_sim_2.exe 中发生了“System.NullReferenceException”类型的未处理异常
附加信息:对象引用未设置为对象的实例。"
和行“World[x, y].Add (c);”突出显示。
如果有人能告诉我我做错了什么,甚至更好的解决问题的方法,那就太棒了。 提前谢谢你!
【问题讨论】:
-
在映射二维数组时,通常 y 先出现,然后是 x,但我猜顺序是主观的。 y then x 会从左上角给出准确的视觉输出。