AI智能
改变未来

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#的混子。

赞(0) 打赏
未经允许不得转载:爱站程序员基地 » C# 如何将List拆分成多个子集合