RT,用到N多个switch case,而且有的switch case项很多,多达几百个..

解决方案 »

  1.   

    您把条件定义成数组,再用for进行操作
    string[] _case={"条件1","条件2".....};
    for(int i=0;i<_case.Length;i++)
    {
             //在这里判断条件,显示数据
    }
      

  2.   

    几百个?还case?
    把条件封起来,即使这样执行代码还是有一定问题
    如果你是
    switch(a)
    {
    case "1": aa();break;
    case "2": bb();break;
    }
    那就不太妙了!
    最好说说你要实现什么,条件后的结果做何用
      

  3.   

    一般switch case的地方可以用多态解决的吧
      

  4.   

    再具体点吧,CASE WHEN 里面是做方法的调用还是数据处理?
      

  5.   

    很简单就是数据的处理,举个少点的例子
    switch (ntrScaleName)
                {
                    case "10人以下":
                        ntrScale = 1;
                        break;
                    case "10~50人":
                        ntrScale = 3;
                        break;
                    case "50~200人":
                        ntrScale = 5;
                        break;
                    case "200~500人":
                        ntrScale = 6;
                        break;
                    case "500~1000人":
                        ntrScale = 7;
                        break;
                    default:
                        ntrScale = 8;
                        break;
                }
      

  6.   

    你的条件真是惨不忍睹呀
            Dim doc As New Dictionary(Of String, Integer)
            doc.Add("10人以下", 1)
            doc.Add("10~50人", 3)
            doc.Add("50~200人", 5)
            doc.Add("200~500人", 6)
            doc.Add("500~1000人", 7)        Try
                ntrScale = (doc(ntrScaleName))
            Catch ex As Exception
                ntrScale = 8
            End Try