Ich habe mich über die Reihenfolge gewundert, in der eine foreach-Schleife in C # ein System.Collections.Generic.List<T>
Objekt durchläuft .
Ich habe eine andere Frage zum gleichen Thema gefunden, aber ich habe nicht das Gefühl, dass sie meine Frage zu meiner Zufriedenheit beantwortet.
Jemand gibt an, dass keine Reihenfolge definiert ist. Aber wie jemand anderes sagt, ist die Reihenfolge, in der ein Array durchlaufen wird, fest (von 0 bis Länge 1). 8.8.4 Die foreach-Anweisung
Es wurde auch gesagt, dass das Gleiche für alle Standardklassen mit einer Bestellung gilt (z List<T>
. B. ). Ich kann keine Dokumentation finden, um das zu sichern. Soweit ich weiß, könnte es jetzt so funktionieren, aber vielleicht wird es in der nächsten .NET-Version anders sein (auch wenn es unwahrscheinlich ist).
Ich habe mir auch die List(t).Enumerator
Dokumentation ohne Glück angesehen.
Eine andere verwandte Frage besagt, dass Java speziell in der Dokumentation erwähnt wird:
List.iterator()
Gibt einen Iterator über die Elemente in dieser Liste in der richtigen Reihenfolge zurück. "
Ich suche so etwas in der C # -Dokumentation.
Danke im Voraus.
Bearbeiten: Vielen Dank für all Ihre Antworten (erstaunlich, wie schnell ich so viele Antworten erhalten habe). Was ich aus allen Antworten verstehe, ist, dass List<T>
es immer in der Reihenfolge seiner Indizierung iteriert. Trotzdem würde ich mir eine klare Dokumentation wünschen, die dies ähnlich wie die Java-Dokumentation auf beschreibtList
.