我想知道C#中的foreach循環通過System.Collections.Generic.List<T>
對象循環的順序。每個循環的C#以什麼順序迭代列表<T>?
我發現another question關於同一主題,但我不覺得它回答我的問題,我的滿意。
有人說沒有定義訂單。但是,正如其他人所說,它遍歷數組的順序是固定的(從0到Length-1)。 8.8.4 The foreach statement
也有人說,對於任何具有訂單的標準類別(例如List<T>
)也是如此。我找不到任何文件來支持它。所以我知道現在可能會這樣,但是在下一個.NET版本中它可能會有所不同(即使它不太可能)。
我也看過List(t).Enumerator
文檔沒有運氣。
Another related question指出,對於Java,它是專門的文件中提到:
List.iterator()
返回在正確的順序在此列表中 元素的迭代器」
我要找類似於C#文檔中的內容。
提前致謝。
編輯:謝謝你所有的答案(驚人的速度有多快我收到了這麼多的回覆)。我從所有答案中瞭解到,List<T>
總是按其索引順序進行迭代。但我仍然希望看到文件明確說明這一點,類似於Java documentation on List
。
。你太快了! –
感謝您的回覆。是否有一些文件保證這一點? –
對於IList你當然更好的遵循這個標準的實現。對於某些集合,集合中的項目不一定有明顯的順序,因此它可以以不同的方式實現。 –