List<T>
Garantiert a immer, dass Artikel in der Reihenfolge zurückgegeben werden, in der sie bei der Aufzählung hinzugefügt wurden?
Aktualisiert : Danke für all die Antworten, Leute, beruhigt mich. Ich habe michList<T>
mit .NET Reflectorschnell in derKlasse umgesehen (hätte das wahrscheinlich an erster Stelle tun sollen), und tatsächlich ist der zugrunde liegende Speicher ein Array vonT
(T[]
).
.net
list
collections
Kev
quelle
quelle
Antworten:
Die Liste ist indexbasiert und neue Elemente werden immer am Ende der Liste hinzugefügt. Sie können Elemente an einem bestimmten Index einfügen, damit die nächsten Elemente um eine Position verschoben werden.
Also ja , so können Sie es sicher benutzen ...
Sie können mehr darüber auf MSDN lesen .
quelle
Ja,
List<T>
garantiert sowohl die Einfügereihenfolge als auch die Abrufreihenfolge und dies ist auf MSDN dokumentiert (Hervorhebung unten ist meine).Einfügen
List<T>.Add
MethodeArtikelparameter ist:
List<T>.AddRange
MethodeDer Erfassungsparameter lautet:
Abruf
List<T>.Enumerator
StrukturCurrent
Gibt dasselbe Objekt zurück, bisMoveNext
es aufgerufen wird.MoveNext
setztCurrent
auf das nächste Element .quelle
does AddRange()
behalten Sie die Reihenfolge der übergebenen Elemente bei, oder können Sie die Reihenfolge ändern, in der sie dem internen Array hinzugefügt werden? (Offensichtlich werden sie alle am Ende der aktuellen Liste sein)Ja. Aber es ist nicht Teil der Spezifikation.
Ref: Listenklasse
quelle
Ja, laut diesem MSDN-Forum-Thread
quelle