C#将一个DataTable分成多个DataTable

一个DataTable,想把1~10,11~20,21~30 行拆成3个新的DataTable,除了循环遍历之外,有更好的方法么?

                    DataTable dt = new DataTable();//你的原始table
        int pagenumber = 10;//分页的间隔
        int pagesize = 1;//取分隔开来的第几个区块
        var row = dt.Rows.Cast<DataRow>();
        var curRows = row.Skip(pagenumber).Take(pagesize).ToArray();//按照间隔区分区块并获取指定区块数据

                    创建新的table加载取出来的区块数据
        DataTable table = new DataTable();
        table.Rows.Add(curRows);


                    多个区块的话要多次创建和抓取

                    也可以写个循环

                    DataSet ds = new DataSet();
                    for(i=1;i<dt.Rows.Count/ pagenumber;i++)
                    {
                        var row = dt.Rows.Cast<DataRow>();
          var curRows = row.Skip(pagenumber).Take(i).ToArray();//按照间隔区分区块并获取指定区块数据
                         DataTable table = new DataTable();
           table.Rows.Add(curRows);
                         ds.Tables.Add(table);
                    }
                    最后的ds就是分隔开来的datatable的集合。


                    这个只能处理等量划分,也就是分页的方式。问题中看的是等量划分,10个一组

CopyToDataTable
https://msdn.microsoft.com/zh-cn/library/bb396189

可以后台进行分页查询

http://blog.csdn.net/osmeteor/article/details/9093417

先搞清楚为什么要这么做吧,我感觉楼主就是为了分页。。。

stepLength = 100000;
IEnumerable listLoop = result.Rows.OfType().Skip(startIndex).Take(stepLength);
DataTable tempTable = listLoop.CopyToDataTable();

谢谢各位,这样就实现我问的了,非常感谢大家!