把一个List拆分为几个大小一样的List

static void Main(string[] args)
        {
            List<String> tarArr = new List<String>();
            tarArr.Add("a");
            tarArr.Add("b");
            tarArr.Add("c");
            tarArr.Add("d");
            tarArr.Add("e");
            tarArr.Add("f");
            //tarArr.Add("g");
            tarArr.Add("h");
            int size = tarArr.Count % 2 == 0 ? tarArr.Count / 2 : tarArr.Count / 2 + 1;
            List<List<String>> result = CreateList(tarArr, size);
        }

public static List<List<T>> CreateList<T>(List<T> targe, int size)
        {
            List<List<T>> listArr = new List<List<T>>();
            //获取被拆分的数组个数  
            int arrSize = targe.Count() % size == 0 ? targe.Count() / size : targe.Count() / size + 1;
            for (int i = 0; i < arrSize; i++)
            {
                List<T> sub = new List<T>();
                //把指定索引数据放入到list中  
                for (int j = i * size; j <= size * (i + 1) - 1; j++)
                {
                    if (j <= targe.Count() - 1)
                    {
                        sub.Add(targe[j]);
                    }
                }
                listArr.Add(sub);
            }
            return listArr;
        }

  

原文地址:https://www.cnblogs.com/XuPengLB/p/7442722.html