That still seems like it wouldn't be the ideal solution. 

In regards to ".. the typical lookup is much faster than the iteration method that exists in your code currently." The code to generate the inverse of the map is iterating over a dictionary and then adding a lookup. So we still aren't saving anything performance wise.

How about I just make two map constants and they have to both be updated? Then we can call it done.