C#快速将一个List拆分为多个List
今天遇到一个小的问题,就是在处理数据时,如果一次性处理的数据过多,数据库会提示异常,基类的方法又不能改动,只能想着把数据拆分为多份,逐一进行处理,假如我们有一个9999条数据的List,但是每次最多只能处理1000个,那么我们就需要把这一个List按每份1000个拆分成10组,最后一组放999条数据,这样也可以实现相应的需求。
在写这个代码之前,我也在网上搜了一下相关的内容,看看有没有前人栽的树,结果我发现相关的内容很少,思路也不太对,索性就自己动动脑子写一个算了,虽然用到的场景也不会太多。
核心代码:
/// <summary>
/// 一个List拆分多个List
/// </summary>
/// <param name="list">要拆分的集合</param>
/// <param name="num">每个集合要容纳的数量</param>
/// <returns></returns>
public List<List<T>> SplitList<T>(List<T> list, int num)
{
//初始化返回集
List<List<T>> ts = new List<List<T>>();
//新数据容器
List<T> ms = new List<T>();
for (int i = 0; i < list.Count; i++)
{
//循环依次将数据放入新的list容器
ms.Add(list[i]);
if (((i + 1) % num == 0) || (i + 1 == list.Count))
{
//如果i+1除以要分的份数为整除,或者是最后一份,则结束循环
ts.Add(ms);
//清空数据容器
ms = new List<T>();
}
}
return ts;
}
实现思路:
版权声明:
作者:兴兴
文章:C#快速将一个List拆分为多个List
链接:https://www.networkcabin.com/notes/2897
文章版权归本站所有,未经授权请勿转载。
作者:兴兴
文章:C#快速将一个List拆分为多个List
链接:https://www.networkcabin.com/notes/2897
文章版权归本站所有,未经授权请勿转载。
THE END