linq2db пресловутое занимается тем, что читает объекты из потока именно в порядке, как они поступают, и читает их по индексам. Вся эта машинерия кэшируется, то есть работает оно со скоростью ручной работы через индексы.
"Нет, ты что идиот? Конечно оно так не работает. Даже если щас работает, в следующей версии будет по-другому. Переделать!"