【发布时间】:2021-10-12 18:46:36
【问题描述】:
我遇到了一个让我发疯的问题。我声明我想避免使用 if 语句以使代码更智能、更简洁。我有一个包含 7 个项目的组合框,如果用户选择第一个项目,则程序对包含在类中的具有相同名称的特定列表执行某些操作,如果他选择第二个,则程序对包含在同一个列表中的另一个列表执行另一件事类。
代码是这样的:
if (cbb1.SelectedItemPosition == 0)
{
lblResult.Text = DoSomething(ClassList.List1);
}
else if (cbb1.SelectedItemPosition == 1)
{
lblResult.Text = DoSomething(ClassList.List2);
}
现在我要添加另一个组合框,并结合所有可能的 if 语句,恕我直言,这将是困难和繁琐的。 所以我正在考虑使用元组将组合框 SelectedItemPosition 与列表名称相关联,让代码简单地像这样:
lblResult.Text = DoSomething(ComboboxItemConvertedToItsCorrespondingList);
也许比我想象的要容易,但我做不到。
对不起我的英语,谢谢大家。
编辑:字典效果很好。我删除了大约 30 行代码!谢谢大家
【问题讨论】:
-
使用
Dictionary<int, List>类型.. 或者您可以使用位置为数组索引的列表,因为您的项目位置是连续的并且从 0 开始。 -
你试过
Dictionary<string, List<>>吗?您可以使用键加载ComboBox,然后从所选键中选择适当的列表。这将消除if块并更具可扩展性。
标签: c#