0

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

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

4

1 回答 1

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;
}
于 2013-11-13T05:26:26.863 回答