List和DataTable

List <T>或者DataTable 进行分组,所以就封装了一下
主要是DataTable 要用ImportRow方法

 

public class OtherManager<T>    {
        /// <summary>
        /// 对List进行分片
        /// </summary>
        /// <param name="source">要分片的List<T></param>
        /// <param name="pageSize">分片的页容积</param>
        /// <returns></returns>

        public static List <List<T>> Segement(List <T> source, int pageSize)
        {
            List <List<T>> list = new List <List<T>>();

            if (source == null || source.Count == 0)
            {
                return list;
            }

            int totalRec = source.Count;

            int totalPage = totalRec % pageSize == 0 ? totalRec / pageSize : totalRec / pageSize + 1;
          
            for (int index = 0; index < totalPage; index++)
            {
                int start = index * pageSize;
                List <T> tmp = new List <T>();
                if (index == totalPage - 1)//最后一页,半页
                {
                    for (int row = start; row < totalRec; row++)
                    {
                        tmp.Add (source[row]);
                    }
                }
                else//满页
                {
                    for (int row = start; row < start + pageSize; row++)
                    {
                        tmp.Add(source[row]);
                    }
                }
                list.Add(tmp);
            }
            return list;
        }


        /// <summary>
        /// 对DataTable进行分片
        /// </summary>
        /// <param name="source">要分片的DataTable</param>
        /// <param name="pageSize">分片的页容积</param>
        /// <returns></returns>

        public static List <DataTable > Segement(DataTable source, int pageSize)
        {
            List <DataTable> list = new List <DataTable>();
            if (source == null || source.Rows.Count == 0)
            {
                return list;
            }

            int totalRec = source.Rows.Count;

            int totalPage = totalRec % pageSize == 0 ? totalRec / pageSize : totalRec / pageSize + 1;
          
            for (int index = 0; index < totalPage; index++)
            {
                int start = index * pageSize;
                DataTable dt = new DataTable ();

                if (index == totalPage - 1)//最后一页,半页
                {
                    for (int row = start; row < totalRec; row++)
                    {
                        dt.ImportRow(source.Rows[row]);
                    }
                }
                else //满页
                {
                    for (int row = start; row < start + pageSize; row++)
                    {
                        dt.ImportRow(source.Rows[row]);
                    }
                }
                list.Add(dt);
            }
            return list;
        }

    }

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值