Um.
AlarmMapped is a class, which means that your Dictionary consists of a reference to a class instance, and a reference to a string.
So any checking against the dictionary keys to find a matych will compare class references, not class content.
So if your dictionary contains these elements:
public Dictionary<AlarmMapped, string> MAP_ALARMS = new Dictionary<AlarmMapped, string>()
{
{ new AlarmMapped ("SYSTEM_STERRING","SUBSYSTEM_STERRING_POWERUNIT","004"),"Phase Fail"},
{ new AlarmMapped ("SYSTEM_STERRING","SUBSYSTEM_STERRING_POWERUNIT","005"),"Hydraulic fluid level"},
};
And you check it against a new instance of your class:
CheckMap(new AlarmMapped("SYSTEM_STERRING","SUBSYSTEM_STERRING_POWERUNIT","005");
you will be checking to see if the new instance reference exists in the dictionary - which by definition it won't because it is a
new
instance, even if it contains the same data.
It's like putting your mobile phone in your desk drawer, and then expecting to find your contacts and messages in a phone you found in my desk drawer!