C#のforeachループがSystem.Collections.Generic.List<T>
オブジェクトをループする順序について疑問に思っていました。
同じトピックについて別の質問を見つけましたが、それが私の質問に満足のいく答えになるとは感じていません。
誰かが順序が定義されていないと述べています。しかし、他の誰かが述べているように、配列をトラバースする順序は固定されています(0から長さ-1まで)。8.8.4foreachステートメント
順序のある標準クラスにも同じことが当てはまるとも言われています(例List<T>
)。それをバックアップするためのドキュメントが見つかりません。ですから、今はそのように機能するかもしれませんが、次の.NETバージョンでは異なる可能性があります(可能性は低いかもしれませんが)。
私もList(t).Enumerator
運が悪かったのでドキュメントを見ました。
別の関連する質問は、Javaの場合、ドキュメントに具体的に記載されていると述べています。
List.iterator()
このリストの要素に対して適切な順序でイテレータを返します。」
私はC#のドキュメントでそのようなものを探しています。
前もって感謝します。
編集:すべての回答をありがとうございました(私が非常に多くの返信を受け取ったのは驚くべきことです)。すべての回答から私が理解しているのは、List<T>
常にインデックスの順序で繰り返されるということです。しかし、のJavaドキュメントList
と同様に、これを示すドキュメントの明確な平和を望んでいます。