有没有办法使用Enum(?)缩短此代码 - 基于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]);
}
Run Code Online (Sandbox Code Playgroud)
为了简化赋值,在两个字符串之间创建映射很有用.字典在那里证明是有用的:
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]);
}
Run Code Online (Sandbox Code Playgroud)