IEnumerable и порядок

У меня есть вопрос оorder вIEnumerable.

Насколько мне известно, перебор IEnumerable - это псевдокод, который можно записать следующим образом:

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

Теперь предположим, что нужно действовать наsorted коллекция. Может ли IEnumerable использоваться в этом случае или лучше попробовать другие способы (т.е.IList) с поддержкой индексации?

Другими словами: делает ли контрактIEnumerable сделать какие-либо гарантии о заказе в целом?

Так,IEnumerable не является подходящим средством для универсального интерфейса, который гарантирует порядок. Новый вопрос в том, какой интерфейс или классshould использоваться для неизменной коллекции с заказом?ReadonlyCollection? IList? Оба они содержатAdd() метод (даже не реализован в первом).

Мои собственные мысли:IEnumerable не дает никаких гарантий о заказе. Правильная реализация может возвращать одни и те же элементы в разном порядке в разных перечислениях (рассмотрим запрос SQL)

Я в курсе LINQFirst(), но еслиIEnumerable ни слова об этом заказе, это расширение довольно бесполезно.

Ответы на вопрос(4)

Ваш ответ на вопрос