C#中通过list的GetRange方法对list进行按执行长度截取并拆分
https://blog.csdn.net/BADAO_LIUMANG_QIZHI/article/details/106402471
场景
假如一个list有235万条记录,现在需要每50万条记录生成一个文件,怎样拆分并截取。
注:
博客主页:
https://blog.csdn.net/badao_liumang_qizhi
关注公众号
霸道的程序猿
获取编程相关电子书、教程推送与免费下载。
实现
首先需要获取总共的需要拆分的文件的个数,通过将list的总长度对指定每个文件的个数进行求余进而决定要拆分的文件的个数。
int excelTotalCount = RecordDataList.Count % eachExcelCount == 0 ? (RecordDataList.Count / eachExcelCount) : (RecordDataList.Count / eachExcelCount + 1);
其中RecordDataList就是所有数据的list,eachExcelCount就是每个文件的数量。
然后声明一个与RecordDataList同类型的list用来对截取的每段进行存取
List<Record> tempRecordList = new List<Record>();
然后就可以通过循环来获取截取的每段的List了
for (int i = 0; i < excelTotalCount; i++)
{
//如果是最后一个csv文件,那么截取到最后
if (i == (excelTotalCount - 1))
{
tempRecordList = RecordDataList.GetRange(eachExcelCount * i, RecordDataList.Count - (eachExcelCount * i));
}
else
{
tempRecordList = RecordDataList.GetRange(eachExcelCount * i,eachExcelCount);
}
//执行其他操作
SetRecordSheetWhenBigData(tempRecordList, recordDataItems, fullPathRecord, bgWorker);
}
要注意的是list的GetRange方法的第二个参数是要截取的长度
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· DeepSeek 开源周回顾「GitHub 热点速览」
· 物流快递公司核心技术能力-地址解析分单基础技术分享
· .NET 10首个预览版发布:重大改进与新特性概览!
· AI与.NET技术实操系列(二):开始使用ML.NET
· .NET10 - 预览版1新功能体验(一)
2022-03-23 springboot允许跨域注解_SpringBoot项目针对跨域问题的三种解决方案 在Spring Boot 中给我们提供了一个注解 @CrossOrigin 来实现跨域
2022-03-23 C# WebService创建与使用
2022-03-23 Thymeleaf - 使用方法及国际化(超详细) springboot Thymeleaf是一个和Velocity、FreeMarker 类似的模板引擎,它在有网络和无网络的环境下皆可运行
2022-03-23 Udesk微前端之路
2022-03-23 jpa 常用查询方法记录
2022-03-23 mybatis注解多表查询
2022-03-23 Mybatis基于注解实现多表查询