Keys列挙体のメンバー名が分かりにくいから置換する

Keys Enum (System.Windows.Forms) | Microsoft Docs
これでキーの名前が分かるんだけど、MacBookはOME〜なんちゃらっていうマイナーなキーボードにあたるらしくて、キーコードも特殊なので対応しなきゃいけない。
あと数字キーはD1じゃなくて1、Multiplyとかも記号で扱いたいなあ、みたいな感じ。

System.Collections.Hashtable keyFix = new System.Collections.Hashtable();
keyFix.Add("D1", "1");
keyFix.Add("D2", "2");
keyFix.Add("D3", "3");
keyFix.Add("D4", "4");
keyFix.Add("D5", "5");
keyFix.Add("D6", "6");
keyFix.Add("D7", "7");
keyFix.Add("D8", "8");
keyFix.Add("D9", "9");
keyFix.Add("D0", "0");
keyFix.Add("Multiply", "*");
keyFix.Add("Separator", "|");
keyFix.Add("Subtract", "-");
keyFix.Add("Decimal", ".");
keyFix.Add("Divide", "/");
keyFix.Add("ShiftKey", "Shift");
keyFix.Add("ControlKey", "Ctrl");
keyFix.Add("Menu", "Alt");
keyFix.Add("Back", "BackSpace");
keyFix.Add("OemOpenBrackets", "[");
keyFix.Add("Oem4", "[");
keyFix.Add("OemCloseBrackets", "]");
keyFix.Add("Oem6", "]");
keyFix.Add("OemPipe", "|");
keyFix.Add("Oem5", "|");
keyFix.Add("OemQuotes", "'");
keyFix.Add("Oem7", "'");
keyFix.Add("OemSemicolon", ";");
keyFix.Add("Oem1", ";");
keyFix.Add("OemQuestion", "/");
keyFix.Add("Oem2", "/");
keyFix.Add("OemPeriod", ".");
keyFix.Add("Oemcomma", ",");
keyFix.Add("Oemtilde", "`");
keyFix.Add("Capital", "CapsLock");

やりたいこと

// キー入力とかが絡むイベントハンドラとかで
string key = e.KeyCode.ToString();
foreach(string k in keyFix.Keys)
{
    if (key.Equals(k))
    {
        key = key.Replace(k, keyFix[k].ToString());
    }
}