2015-10-07 107 views
-2

我有一个循环,理论上应该循环40000次,但在循环之后退出并且不会继续执行代码,仅在一次迭代之后。我认为我并不是对for循环感到愚蠢,因为它在循环之后并没有继续,所以这可能是对Lists有限制的东西?或者可能由于VS调试器不能正常工作而引起一些问题? (可能不是tho ...) 编辑:谢谢指出最后一层是毫无意义的。我编辑了代码,但问题仍然存在。 编辑2:为了澄清,代码不会导致异常或中断。它只是停止没有任何通知,并显示窗体(因为我做一个Windows窗体应用程序)。只是...它只是不想继续并跳过其余的代码。循环在一次迭代后停止所有代码

for (int i = 0; i < hiddenLayerDepth - 1; i++) 
{ 
    Connectors.Add(new List<List<List<List<Connector>>>>()); 
    for (int j = 0; j < playfieldSize; j++) 
    { 
     Connectors[i].Add(new List<List<List<Connector>>>()); 
     for (int k = 0; k < playfieldSize; k++) 
     { 
      Connectors[i][j].Add(new List<List<Connector>>()); 
      for (int l = 0; l < playfieldSize; l++) 
      { 
       Connectors[i][j][k][l].Add(new Connector()); 
      } 
     } 
    } 
} 

hiddenLayerDepth被进入循环时设置为5,并且playfieldSize设置为10。它进入最内层循环和内执行的代码,那么它只是停止,而不增加m

+0

您是否在层次结构调用中有更高的try catch语句,它只是吞下您的代码中可能发生的异常? (例如错误索引)另外,请密切关注VS –

+0

中的输出 - 调试窗口。如果没有其他问题,您似乎缺少使用'L'循环。 –

+4

定义“停止”?崩溃?例外?继续进行其他循环?一般评论:4D列表/数组?不,那需要重构。 – John3136

回答

1

失踪

Connectors[i][j][k].Add(new List<List<Connector>>()); 

如果你知道你应该刚刚创建的大小和排列在前面

-1

嗯,我试图添加一个“连接器”那里没有列表。包含将计数连接器的列表的列表未被添加。