コード例 #1
0
ファイル: ParaListSet.cs プロジェクト: yangfan111/CsharpCode
 public virtual ParaList GetParaList(string field, string value, IEventArgs args)
 {
     if (StringUtil.IsNullOrEmpty(order) && StringUtil.IsNullOrEmpty(unique))
     {
         if (cache == null)
         {
             cache = new MyDictionary <string, MyDictionary <string, ParaList> >();
         }
         if (cache.ContainsKey(field) && cache[field].ContainsKey(value))
         {
             return(cache[field][value]);
         }
     }
     else
     {
         foreach (ParaList pl in list)
         {
             IPara para = pl.Get(field);
             if (para != null)
             {
                 try
                 {
                     IPara temp = para.Initial("==", value);
                     bool  m    = para.Meet("==", temp);
                     temp.Recycle();
                     if (m)
                     {
                         return(pl);
                     }
                 }
                 catch (Exception)
                 {
                 }
                 UnitPara up    = UnitPara.ParseOne(value);
                 IPara    vPara = up.GetPara(args);
                 if (vPara != null && para.Meet("==", vPara))
                 {
                     return(pl);
                 }
             }
         }
     }
     return(null);
 }