Сохранять порядок значений с помощью linq и ToLookup()

Хотя я уверен, что ключи были неупорядочены при возврате из метода Linq ToLookup, сохранен ли порядок значений? Я не могу найти документацию, которая говорит так или иначе.

Ответы

Ответ 1

Текущая реализация ToLookup() действительно сохраняет порядок значений (проверьте реализацию Lookup<TKey,TElement>.Grouping<TKey,TElement>.Add()), но я не верю, что это будет гарантировано. Чтобы гарантировать заказ, лучше всего включить исходный индекс элемента, возможно, используя Select с перегрузкой индексов, а затем снова отсортировать.

Ответ 2

Я думаю, что они есть, посмотрите здесь. ILookup получен из IEnumerable<IGrouping<TKey, TElement>>. Я верю, что ценности гарантированно будут в порядке.