网上的例子:

问:List<string> list = new List<string>();
        for (int i = 1; i < 95; i++)
        {
            list.Add(i.ToString());
        }
如何将list拆分成10个子集合?


答案:

 List<List<string>> listGroup = new List<List<string>>();
            int j = 10;
            for (int i = 0; i < list1.Count; i += 10)
            {
                List<string> cList = new List<string>();
                cList = list1.Take(j).Skip(i).ToList();
                j +=10;
                listGroup.Add(cList);
            }


个人使用中的实例如下:
                #region  新方法

                List<List<hourhistoryrecorditem>> listGroup = new List<List<hourhistoryrecorditem>>();
                int j = 500000;
                for (int i = 0; i < lstVals.Count; i += 500000)//以50万为一组分组
                {
                    List<hourhistoryrecorditem> cList = new List<hourhistoryrecorditem>();
                    cList = lstVals.Take(j).Skip(i).ToList();
                    j += 500000;
                    listGroup.Add(cList);
                }
                for (int i = 0; i < listGroup.Count; i++)
                {
                    List<hourhistoryrecorditem> list = new List<hourhistoryrecorditem>();
                    list = listGroup[i];
                    foreach (hourhistoryrecorditem aItem in list)
                    {
                        int iOffset = 0;
                        DataRow r = dt.NewRow();

                        r[iOffset++] = DBNull.Value;
                        r[iOffset++] = aItem.CurValue;
                        r[iOffset++] = aItem.MaxValue_;
                        r[iOffset++] = aItem.MinValue;
                        r[iOffset++] = aItem.AvgValue;
                        r[iOffset++] = aItem.ValueFlag;
                        r[iOffset++] = aItem.RecordType;
                        r[iOffset++] = aItem.NodeID;
                        r[iOffset++] = aItem.LogDT;
                        r[iOffset++] = aItem.DataCount;
                        r[iOffset++] = aItem.Increment;
                        r[iOffset++] = aItem.VTopVal;
                        r[iOffset++] = aItem.TopVal;
                        r[iOffset++] = aItem.NormalVal;
                        r[iOffset++] = aItem.LowVal;
                        r[iOffset++] = aItem.VLowVal;
                        r[iOffset++] = aItem.ChargeVal;
                        r[iOffset++] = aItem.IncVTopVal;
                        r[iOffset++] = aItem.IncTopVal;
                        r[iOffset++] = aItem.IncNormalVal;
                        r[iOffset++] = aItem.IncLowVal;
                        r[iOffset++] = aItem.IncVLowVal;
                        r[iOffset++] = aItem.IncChargeVal;
                        r[iOffset++] = aItem.OrgID;

                        dt.Rows.Add(r);

                    }
                    TablesBlukInsertOp.BulkToDB(dt, "hourhistoryrecorditem");
                    dt.Rows.Clear();//执行完插入后,记得清空DataTable
                }

                #endregion

C# 如何将List拆分成多个子集合的更多相关文章

  1. sql语句编写 有时候一个子查询可以拆分成多个子查询

    sql语句编写 有时候一个子查询可以拆分成多个子查询

  2. List拆分成多个集合

    如果对一组大的集合进行操作,想分组进行,比如批量新增10000条数据,想100条分成一个集合分成100个集合,对集合进行操作100次,用C#如何编写,这里记录下代码如下 //构造被分隔的集合 List ...

  3. UTF-8编码的字符串拆分成单字、获取UTF-8字符串的字符个数的代码及原理

    一.字符编码简介 1. ASCII码 在计算机内部,所有的信息最终都表示为一个二进制的字符串.每一个二进制位(bit)有0和1两种状态,因此八个二进制位就可以组合出256种状态,这被称为一个字节(by ...

  4. Oracle字符串行拆分成列的三种方式

    Oracle字符串行拆分成列的三种方式 --muphy 开发过程中经常会遇到将前台多个值用逗号连接一同传递到后台查询,这个用逗号连接的字符串分隔的每个字符串分别对应Oracle数据库表的不同行. 如下 ...

  5. [Swift]LeetCode842. 将数组拆分成斐波那契序列 | Split Array into Fibonacci Sequence

    Given a string S of digits, such as S = "123456579", we can split it into a Fibonacci-like ...

  6. 将excel按照某一列拆分成多个文件(方案整理)

    1解决方案:将excel按照某一列拆分成多个文件 https://blog.csdn.net/ntotl/article/details/79141314 2遇到的问题:解决vbe6ext.olb不能 ...

  7. Oracle数据库字段数据拆分成多行(REGEXP_SUBSTR函数)

    做多选功能时为了简便,会在某个字段中存储多个值,保存时虽然省事,但后续的查询统计时还需要拆分数据才行,因此这时需要将字段内的值分成多行以便后续使用. 下面这个例子实现了字段内数据的拆分: --创建测试 ...

  8. sql 表值函数-将一个传入的字符串用2中分隔符拆分成临时表

    USE [tms]GO/****** Object: UserDefinedFunction [dbo].[fn_StrToTable_Double] Script Date: 2017/4/26 9 ...

  9. sqlserver 将 “用 特定字符 分隔的一个字段” 拆分成多个字段,然后两个表之间数据更新

    将源TXT文件sourceFile_table.txt导入数据库,生成新表dbo.sourceFile_table.新增字段lon.lat.shi.xian 源表dbo.sourceFile_tabl ...

随机推荐

  1. javascript基础知识

    1.javascript 表单验证,减轻服务器压力 制作网页特效 动态改变页面内容 基于对象和事件驱动的,具有安全性能的脚本语言 交互,脚本语言.解释性语言,边执行边解释 2.script标签 添加位 ...

  2. Redis_redis分布式锁-SETNX

    因业务需要使用了redis的SETNX来实现分布式锁. 描述:Redis有一系列的命令,特点是以NX结尾,NX是Not eXists的缩写,如SETNX命令就应该理解为:SET if Not eXis ...

  3. 服务器使用FTP命令行 无法传送文件 卡在150 Opening data channel for file transfer

    猜测,是因FTP服务器采用了主动模式,在创建数据传输通道时,服务器会以一个随机的端口,连接回来. 临时解决方案: 因不知道请求回来使用的哪个段的端口,因此,暂时关闭了防火墙.即能正常传输文件了.

  4. Java序列化、反序列化和单例模式

    学习JAVA的时候,特别是涉及到网络编程时,我们时常让我们的实体类实现一个接口 public class Entity implements Serializable{ } 这样子我们可以通过输入输出 ...

  5. Python之路【第六篇】python基础 之面向对象(一)

    一.三大编程范式 1.面向过程编程 2.函数式编程 3.面向对象编程 二.编程进化论 1.编程最开始就是无组织无结构,从简单控制流中按步写指令 2.从上述的指令中提取重复的代码块或逻辑,组织到一起(比 ...

  6. LabVIEW 吸星大法 - 看见的好东西都是我的(下篇)

    前言 写了多年的LabVIEW程序,你是否面临这样的问题 总是在做一些重复的工作,感觉很没有意思: 总在不停的写代码,做类似的控件,实现相同的功能,丝毫没有成就感: 总在天加班,没有时间去提高自己; ...

  7. mysql添加一个用户

    对于添加mysql的远程访问用户,一定要记得刷新刷新系统权限表不然你怎么弄都是不成功的. insert into mysql.user(Host,User,Password) values(" ...

  8. iOS开发——post异步网络请求封装

    IOS中有许多网络请求的函数,同步的,异步的,通过delegate异步回调的. 在做一个项目的时候,上网看了很多别人的例子,发现都没有一个简单的,方便的异步请求的封装例子.我这里要给出的封装代码,是异 ...

  9. 一鼓作气 博客--第八篇 note8

    0.,222] list[33] except IndexError as e : print('index error ') except ValueError as e : print('valu ...

  10. IEEE/ACM ASONAM 2014 Industry Track Call for Papers

    IEEE/ACM International Conference on Advances in Social Network Analysis and Mining (ASONAM) 2014 In ...