C# 如何将List拆分成多个子集合

项目中经常遇见需要将一个巨大集合拆分成多个子集合的需求,以下提供两种方法供于参考,如果有其他更好的方法,欢迎私信讨论。

循环拆分(demo为100条数据的集合拆分成10个集合)

            List<string> a = new List<string>();//父集合
            List<List<string>> b = new List<List<string>>();//拆分的子集合
            List<string> c = new List<string>();//中间量

            for (int i = 0; i < 1000; i++)
            {
                a.Add(i.ToString());//测试数据
            }
            int j = 100;//每个集合的容量
            for (int i = 0; i < 1000; i +=10)
            {
                c = a.Take(j).Skip(i).ToList();//take为每次取的数量,skip为跳过的数量。执行时take每次取0~9,skip跳过i项。
            	j += 100;
                b.Add(c);
                    }
            Console.ReadKey();

耗费时间
在这里插入图片描述

循环加入

           List<string> a = new List<string>();//父集合
           List<List<string>> b = new List<List<string>>();//拆分的子集合
           List<string> c = new List<string>();//中间量

           for (int i = 0; i < 1000; i++)
           {
               a.Add(i.ToString());//测试数据
           }
           int j = 999;//每个集合序号最大值
           for (int i = 0; i < 10000; i++)
           {
               c.Add(a[i]);
               if (i < j)
               {
                   continue;
               }
               b.Add(c);
               c = new List<string>();
               j += 1000;
           }

耗费时间
在这里插入图片描述

以上仅供参考,测试数据并不标准,如有更好的方法请私信

我是小赖,一个学习C#的混子。

  • 2
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 3
    评论
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值