2015-10-07 141 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

嗯,我試圖添加一個「連接器」那裏沒有列表。包含將計數連接器的列表的列表未被添加。