日期:2014-05-19  浏览次数:20888 次

简单的方法性能如何改进
场景:进销存系统设计中,有个产品规格名称“件*卡*盒*散数”,对应的规格数量为“1*4*12*60”,我现在想通过单位得到对应这个单位的总的散数,如:“件”的散数为4*12*60,卡的散数为12*60。以下是我刚刚实现的函数,总觉得性能太差了,因为这个方法要频繁调用的,恳请大家也帮忙想想如何改进。
  ///   <summary>
                ///   通过单位和规则得到对应单位的散数总数
                ///   </summary>
                ///   <param   name= "RuleTitle "> 名称规则 </param>
                ///   <param   name= "RuleNum "> 数字规则 </param>
                ///   <param   name= "UnitName "> 单位名称 </param>
                ///   <returns> </returns>
                public   int   CalcUintTotalNumber(string   RuleTitle,   string   RuleNum,   string   UnitName)
                {
                        string[]   titles   =   RuleTitle.Split( '* ');
                        string[]   rules   =   RuleNum.Split( '* ');
                        int   result   =   1;
                        for   (int   i   =   0;   i   <   titles.Length;   i++)
                        {
                                if   (titles[i]   ==   UnitName)
                                {
                                        for   (int   j   =   i   +   1;   j   <   rules.Length;   j++)
                                        {
                                                result   *=   Convert.ToInt32(rules[j]);
                                        }
                                        return   result;
                                }
                        }
                        return   result;
                }
两层循环太恐怖了,不知道有没有更好的实现方法呢:(
目前的调用实例:  
int   a   =   CalcUintTotalNumber( "件*卡*盒*散数 ",   "1*4*12*60 ",   "卡 ");

------解决方案--------------------