zoukankan      html  css  js  c++  java
  • C#中通过list的GetRange方法对list进行按执行长度截取并拆分

    场景

    假如一个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方法的第二个参数是要截取的长度

  • 相关阅读:
    poj2387Til the Cows Come Home(dijkstra)
    poj2349Arctic Network
    poj1789Truck History
    zoj1586QS Network
    poj2421Constructing Roads
    poj2301Building a Space Station(最小生成树)
    poj1287Networking(最小生成树)
    myeclipse配置svn亲测
    MyEclipse8.6安装svn(非link方式)
    myeclipse一些技巧
  • 原文地址:https://www.cnblogs.com/badaoliumangqizhi/p/12980133.html
Copyright © 2011-2022 走看看