首页 > 解决方案 > 用 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;
    }

标签: c#.net

解决方案


除了在 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);
        }
    }

推荐阅读