1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 | #region 把一个集合平均分组后,最后不满一组的放到最后一个分组中 /// <summary> /// 把一个集合平均分组,最后不满一组的放到最后一个分组中 /// </summary> /// <typeparam name="T"></typeparam> /// <param name="Lists"></param> /// <param name="num"></param> /// <returns></returns> public static List<List<T>> SpiltList<T>(List<T> Lists,int num) //where T:class { List<List<T>> fz = new List<List<T>>(); //元素数量大于等于 分组数量 if (Lists.Count >= num) { int avg = Lists.Count / num; //每组数量 int vga = Lists.Count % num; //余数 for (int i = 0; i < num; i++) { List<T> cList = new List<T>(); if (i + 1 == num) { cList = Lists.Skip(avg * i).ToList<T>(); } else { cList = Lists.Skip(avg * i).Take(avg).ToList<T>(); } fz.Add(cList); } } else { fz.Add(Lists);//元素数量小于分组数量 } return fz; } #endregion |
未经允许不得转载:开心乐窝-乐在其中 » c# 对List集合进行平均分割

