c# - 用 C# 优化 Switch Case
问题描述
我有一个 Switch Case,其中我收到 6 个不同的值,基于每个收到的值,用于由规则定义的固定值。我想帮助改进这个 Switch Case,虽然它可以工作,但我认为它的构建或格式不正确。
switch (IAP)
{
case 5:
for (var c = 0; c < 5; c++)
{
_query.NewCupon(doc, id, date);
}
break;
case 6:
for (var c = 0; c < 8; c++)
{
_query.NewCupon(doc, id, date);
}
break;
case 7:
for (var c = 0; c < 11; c++)
{
_query.NewCupon(doc, id, date);
}
break;
case 8:
for (var c = 0; c < 13; c++)
{
_query.NewCupon(doc, id, date);
}
break;
case 9:
for (var c = 0; c < 16; c++)
{
_query.NewCupon(doc, id, date);
}
break;
case 10:
for (var c = 0; c < 19; c++)
{
_query.NewCupon(doc, id, date);
}
break;
}
解决方案
除了在 switch 语句中使用 for 循环,您可以在外部使用 forloop 并执行以下操作,
IDictionary<int, int> numberNames = new Dictionary<int, int>();
numberNames.Add(5,5);
numberNames.Add(6,8);
if(numberNames.ContainsKey(IAP))
{
for (var c = 0; c < numberNames[IAP] ; c++)
{
_query.NewCupon(doc, id, date);
}
}
推荐阅读
- awk - FFMPEG 使用 MSVC 在 Windows 上构建 - 制作失败
- flutter - Flutter 如何布局 UI 小部件
- continuous-integration - 将文件夹从远程复制到 Gitlab 运行器以将其保存在工件中
- apache - 隐藏.html并管理404
- vue.js - vue eventbus.$on 不更新值
- c++ - 开发 C++ 和 libpng。任何人都知道如何使它工作,
- python - 将两个数据框与第一条记录合并,没有重复的行
- javascript - 访问 Array.map() 中的上一个父值
- javascript - 如何无限打印 JS 变量?
- javascript - 无法使用 fetch POST 方法对未安装的组件执行 React 状态更新