2016-03-07 34 views
3

這會始終在所有平臺上以相同的順序打印元素嗎?多維數組枚舉是否保證所有實現的順序相同?

foreach (var el in multidimArray) Console.WriteLine(el); 

我在找規格或任何官方的報價。

+0

假設我編寫了一個實現IEnumerable並且隨機返回內容的類(* multidimArray *)。所以答案取決於... – Eser

+5

@Eser你的自定義類永遠不會是多維數組。 – Vlad

+3

這個問題不是關於**專業服務器或網絡相關的基礎設施管理**,並且要求提供規範報價與要求**推薦或找到書籍,工具,軟件庫,網站資源**。總之,除非你發現重複,否則沒有理由關閉這個問題。 – juharr

回答

7

是的,內置數組的枚舉順序是明確定義的且與平臺無關。

參見C# Specification(8.8.4 foreach語句)的相關部分:

在其中的foreach遍歷數組的元素,是如下的順序:

  • 對於單維數組元素以索引順序遞增,從索引0開始並以索引長度-1結束。
  • 對於多維數組,遍歷元素使得最右邊的維度的索引首先增加,然後是左下方的維度,以此類推。
相關問題