Сохранять порядок значений с помощью linq и ToLookup()
Хотя я уверен, что ключи были неупорядочены при возврате из метода Linq ToLookup, сохранен ли порядок значений? Я не могу найти документацию, которая говорит так или иначе.
Ответы
Ответ 1
Текущая реализация ToLookup()
действительно сохраняет порядок значений (проверьте реализацию Lookup<TKey,TElement>.Grouping<TKey,TElement>.Add()
), но я не верю, что это будет гарантировано. Чтобы гарантировать заказ, лучше всего включить исходный индекс элемента, возможно, используя Select
с перегрузкой индексов, а затем снова отсортировать.
Ответ 2
Я думаю, что они есть, посмотрите здесь. ILookup получен из IEnumerable<IGrouping<TKey, TElement>>
. Я верю, что ценности гарантированно будут в порядке.