I like the new constructor -- maybe hide even more of these initializers inside it by adding arguments (... Index ret, SortDirectionType) -- let it hard-code IndexLookupType.
It would also be nice if you could refactor the other micro-optimizations a little to use the same or similar custom constructors.
In other words, sometimes a better way to keep a code base more consistent is to change OLD code to look more like NEW/better code.