C# - 基于字典键动态更新标签

时间:2013-11-13 05:11:57

标签: c# dictionary label

我需要在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;
    ...
}

关于如何使这更好,更快,更清洁等的任何建议?

1 个答案:

答案 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;
}