In a project I am working on, there are really huge collections (1M-1B elements), and things are modified as collections mostly.

It's a real-time app, and so the performance is paramount.

For some of the operations, like Reverse, BinarySearch (possible?), etc will suffer more than others like Select, etc.

Is it feasible to implement one's own IEnumerable with possible MoveNext, MovePrev, etc and own implemented LINQ extensions that take advantages of these?

If this is gonna happen, it's gonna happen at the end of the project. Because we need to get it working first, then make it faster.

All in all this shouldn't be too much work, right?