有没有办法使用枚举(?)缩短此代码 - 基于Inputcolor
?
例如,如果我的inputcolor
为Darkblue
,我希望将Administrator
作为字符串。我该怎么做?
我不想要所有这些"否则如果"。
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]);
}
答案 0 :(得分:6)
为简化赋值,在两个字符串之间创建映射很有用。字典在那里证明是有用的:
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]);
}