c# 实现List按指定数量分割

c# 实现List按指定数量分割

在进行开发过程中,有些场景需要我们对List进行按数量分割,比如说:假定一个1000条数据的list需要按照每100条数据分割,这样你就得到了10个list
场景有批量插入组合sql 等,当插入数据超出上限
那么如何实现呢?

            #region  初始化待处理的list
            List<string> list = new List<string>();
            for(var i=0;i<1000;i++)
            {
                list.Add(i.ToString());
            }
            #endregion 初始化完毕

            //存储分割后的数据
            List<List<string>> groupList = new List<List<string>>();
            int groupSize = 100; //每组数据100条
            for (int i = 0; i < list.Count; i += groupSize)
            {
                //去除数据 其中Skip 表示跳过多少条数据  Take表示获取多少条数据
                groupList.Add(list.Skip(i).Take(groupSize).ToList());
            }

亲测有效可使用哦

再附上已经封装好的insert sql组装方法

        /// <summary>
        /// insertHead 表示插入语句头部 格式:insert into ... values
        /// valuesBody 表示插入多行数据 每行格式:(,,)
        /// batchBoxSize 表示一次最多插入条数
        /// </summary>
        public static string GetBatchInsertSql(string insertHead ,List<string> valuesBody,int batchBoxSize)
        {
            if(valuesBody == null || valuesBody.Count == 0 || batchBoxSize <= 0 || batchBoxSize > 1000)
            {
                throw new Exception("输入参数不合法");
            }

            StringBuilder sb = new StringBuilder();
            for (int i = 0; i < valuesBody.Count(); i += batchBoxSize)
            {
                sb.Append(insertHead);
                sb.Append(string.Join(",", valuesBody.Skip(i).Take(batchBoxSize).ToList()) + ";\n");
            }
            return sb.ToString();
        }

觉得有用点个收藏吧!!!

评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值