Ответ 1
Да, для методов Enumerable
(LINQ to Objects, которые относятся к List<T>
, которые вы упомянули), вы можете положиться на порядок элементов, возвращаемых Select
, Where
или GroupBy
. Это не относится к вещам, которые по своей сути неупорядочены, например, ToDictionary
или Distinct
.
В документации Enumerable.GroupBy:
Объекты
IGrouping<TKey, TElement>
приводятся в порядке, основанном на порядке элементов в источнике, который произвел первый ключ каждогоIGrouping<TKey, TElement>
. Элементы в группировке получаются в том порядке, в каком они появляются вsource
.
Это не обязательно верно для методов расширения IQueryable
(другие поставщики LINQ).