用很多 if() else if () 简化字符串赋值

Simplify string assignment with many if() else if ()

有没有一种方法可以使用 Enum(?) 来缩短此代码 - 基于 Inputcolor? 例如,如果我的 inputcolorDarkblue,我希望将 Administrator 作为字符串。我该怎么做?

我不想要这一切"else if"。

if (inputcolor[0].CompareTo("darkblue") == 0) 
{ 
    dataGridView2.Rows.Add(loggedname1[0], "Administrator", mu + loggedprofile1[0]); 
}
else if (inputcolor[0].CompareTo("green") == 0) 
{   
    dataGridView2.Rows.Add(loggedname1[0], "B", mu + loggedprofile1[0]); 
}
else if (inputcolor[0].CompareTo("ff0000") == 0) 
{   
    dataGridView2.Rows.Add(loggedname1[0], "C", mu + loggedprofile1[0]); 
}
else if (inputcolor[0].CompareTo("3399ff") == 0) 
{ 
    dataGridView2.Rows.Add(loggedname1[0], "D", mu + loggedprofile1[0]); 
}
else if (inputcolor[0].CompareTo("008000") == 0) 
{ 
    dataGridView2.Rows.Add(loggedname1[0], "E", mu + loggedprofile1[0]); 
}
else if (inputcolor[0].CompareTo("00cc00") == 0) 
{ 
    dataGridView2.Rows.Add(loggedname1[0], "F", mu + loggedprofile1[0]); 
}
else if (inputcolor[0].CompareTo("00CC99") == 0) 
{ 
    dataGridView2.Rows.Add(loggedname1[0], "G", mu + loggedprofile1[0]); 
}

为了简化赋值,在两个字符串之间创建映射很有用。字典在那里很有用:

var colorMapping = new Dictionary<string, string>
{
    { "darkblue", "Administrator"},
    { "green", "B"},
    // ...
};

var key = inputcolor[0];
string output;
if (colorMapping.TryGetValue(key, out output))
{
    dataGridView2.Rows.Add(loggedname1[0], output, mu + loggedprofile1[0]);
}