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); }
public void Union(MongoDataDictionary <T> vals) { foreach (string key in vals.Keys) { if (!this.ContainsKey(key)) { this.Add(key, vals[key]); } } }
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); }