There are two possible solutions I can think of:
First, assuming that your
entries are all really integer values, then define the
values, not as
Dictionary<string, int> _ABC = new Dictionary<string, int>();
Then store the values as integers and your reverse lookup will behave:
string emailAdd = _ABC.FirstOrDefault(x => x.Value == 94).Key;
This is not
There is no order preserved! This is unpredictable if the values are not unique.
I think a better solution would be just to keep 2 Dictionary instances. The
you have now (and it is still better to keep the Value as int if that is really the correct constraint on the values). And then a second one for the reverse mapping:
Dictionary<int, string> _ABCrev = new Dictionary<int, string>();
string emailAdd = _ABCrev;
Again, this counts on the numeric "values" being unique.