Почему IOrderedEnumerable не сохраняет порядок после фильтрации

Я создал упрощение вопроса. У меня есть заказанный IEnumerable, мне интересно, почему применение фильтра where может изменить порядок объектов

Это не компилируется, в то время как это должно иметь потенциал для

IOrderedEnumerable<int> tmp = new List<int>().OrderBy(x => x);
//Error Cannot Implicitly conver IEnumerable<int> To IOrderedEnumerable<int>
tmp = tmp.Where(x => x > 1);

Я понимаю, что не будет гарантированного порядка выполнения, если он поступит из IQueryable, такого как использование linq для какого-либо провайдера БД.

Тем не менее, при работе с Linq To Object, какой senario может произойти, что приведет к неупорядоченности ваших объектов, или почему это не реализовано?

РЕДАКТИРОВАТЬ

Я понимаю, как правильно заказать это не вопрос. Мой вопрос - это скорее вопрос дизайна. Фильтр Где на linq для объектов должен перечислять перечислимые и применять фильтрацию. Так почему же мы можем вернуть только IEnumerable вместо IOrderedEnumerable?

РЕДАКТИРОВАТЬ

Уточнить сенарио, когда это будет полезно. Я строю запросы на основе условий в моем коде, я хочу использовать как можно больше кода. У меня есть функция, которая возвращает OrderedEnumerable, однако после применения дополнительного, где мне придется изменить порядок, даже если бы он был в исходном упорядоченном состоянии

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

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