Ejemplo n.º 1
0
        public static List <MongoDataDictionary <T> > ToGroup <T>(MongoDataDictionary <T> orgArr, int grpCnt = 0) where T : MongoData
        {
            List <MongoDataDictionary <T> > ret = new List <MongoDataDictionary <T> >();
            int realcnt = grpCnt;

            if (grpCnt <= 0)
            {
                realcnt = orgArr.Count / 10;
            }
            int grpInnerCnt  = (int)Math.Floor((double)orgArr.Count / realcnt);//每组个数
            int lastInnerCnt = orgArr.Count - grpInnerCnt * (realcnt - 1);

            for (int i = 0; i < realcnt; i++)
            {
                int copycnt = grpInnerCnt;
                if (i == realcnt - 1)
                {
                    copycnt = lastInnerCnt;
                }
                MongoReturnDataList <T>[] grpcodes = new MongoReturnDataList <T> [copycnt];
                Array.Copy(orgArr.Values.ToList().ToArray(), i * grpInnerCnt, grpcodes, 0, copycnt);//复制到数组中去

                ret.Add(new MongoDataDictionary <T>(grpcodes));
            }
            return(ret);
        }
Ejemplo n.º 2
0
 public void Union(MongoDataDictionary <T> vals)
 {
     foreach (string key in vals.Keys)
     {
         if (!this.ContainsKey(key))
         {
             this.Add(key, vals[key]);
         }
     }
 }
Ejemplo n.º 3
0
        public static MongoDataDictionary <T> ToDirectionary(MongoReturnDataList <T> list, string keyName)
        {
            MongoDataDictionary <T> ret = new MongoDataDictionary <T>();

            if (list == null)
            {
                return(null);
            }
            for (int i = 0; i < list.Count; i++)
            {
                DetailStringClass       obj     = list[i] as DetailStringClass;
                string                  key     = obj.getValue(keyName)?.ToString();
                MongoReturnDataList <T> sublist = new MongoReturnDataList <T>();
                if (!ret.ContainsKey(key))
                {
                    ret.Add(key, sublist);
                }
                sublist = ret[key];
                sublist.Add(list[i]);
                ret[key] = sublist;
            }
            return(ret);
        }