我需要在C#表单上更新几个标签,我希望以更有效的方式进行更新。目前,如果用户单击复选框,则会将复选框ID添加到字典中,并根据复选框ID的值更新标签。
foreach (KeyValuePair<int, string> checkbox in CheckedDict)
{
switch (checkbox.Key)
{
case 0:
SomeLabel.Text = checkbox.Value;
break;
case 1:
SomeOtherLabel.Text = checkbox.Value;
break;
...
}
关于如何使这更好,更快,更清洁等的任何建议?
答案 0 :(得分:2)
“更快”在这里是无关紧要的,因为如果有超过6或7个不同的标签,C#编译器会将其转换为字典查找。即使没有,与确定实际更新所需的时间相比,确定更新哪个标签所需的时间也会很短。
但是,您可以通过创建包含键和标签的并行字典来使其更清晰。例如:
Dictionary<int, Label> labelDictionary = new Dictionary<int, Label>
{
{0, SomeLabel},
{1, SomeOtherLabel},
...
};
然后在你的代码中:
foreach (KeyValuePair<int, string> checkbox in CheckedDict)
{
labelDictionary[checkbox.Key].Text = checkbox.Value;
}