IEnumerable und Ordnung

Ich habe eine Frage zumAuftrag imIEnumerable.

Soweit mir bekannt ist, kann das Durchlaufen von IEnumerable als Pseudocode folgendermaßen geschrieben werden:

<code>while (enumerable.HasNext())
{
    object obj = enumerable.Current;
    ...
}
</code>

Nun nehmen wir an, dass man auf a operieren musssortiert Sammlung. Kann IEnumerable in diesem Fall verwendet werden oder ist es besser, andere Mittel zu versuchen (d. H.IList) mit Indexierungsunterstützung?

Mit anderen Worten: Tut der Vertrag vonIEnumerable Garantien über die Bestellung im Allgemeinen machen?

So,IEnumerable ist kein geeignetes Mittel für eine generische Schnittstelle, die die Bestellung garantiert. Die neue Frage ist, welche Schnittstelle oder Klassesollte für eine unveränderliche Sammlung bei Bestellung verwendet werden?ReadonlyCollection? IList? Beide enthaltenAdd() Methode (auch nicht in der ersten implementiert).

Meine eigenen Gedanken:IEnumerable übernimmt keine Garantie für die Bestellung. Die korrekte Implementierung könnte dieselben Elemente in unterschiedlicher Reihenfolge in unterschiedlichen Aufzählungen zurückgeben (eine SQL-Abfrage berücksichtigen)

Mir ist LINQ bekanntFirst(), aber fallsIEnumerable sagt kein Wort über die Bestellung, diese Erweiterung ist ziemlich nutzlos.

Antworten auf die Frage(4)

Ihre Antwort auf die Frage