如何维护DataTable的Start和End索引

时间:2015-06-04 16:03:23

标签: c# linq ado.net

我有一个包含13行的DataTable。我想创建一批包含开始和结束索引的5行

我想创建一个数组或Hashtable,它将存储开始和结束索引

decimal remainder = Decimal.Divide(dsResult.Tables[0].Rows.Count, 5);
var numberOfRequests = Math.Ceiling((decimal)remainder);

上面的代码将给出我的输出为3记录13记录意味着5 + 5 + 3

因此预期ArrayHashtable如下

0  0   4
1  5   9
3 10  12

第一列是增量值, 第二列是DataTable Row Start索引 第三列是DataTable Row End索引

请建议我如何实施。

1 个答案:

答案 0 :(得分:0)

试试这个

            DataTable dt = new DataTable();
            dt.Columns.Add("Index", typeof(int));
            dt.Rows.Add(new object[]{1});
            dt.Rows.Add(new object[]{2});
            dt.Rows.Add(new object[]{3});
            dt.Rows.Add(new object[]{4});
            dt.Rows.Add(new object[]{5});
            dt.Rows.Add(new object[]{6});
            dt.Rows.Add(new object[]{7});
            dt.Rows.Add(new object[]{8});
            dt.Rows.Add(new object[]{9});
            dt.Rows.Add(new object[]{10});
            dt.Rows.Add(new object[]{11});
            dt.Rows.Add(new object[]{12});
            dt.Rows.Add(new object[]{13});
            dt.Rows.Add(new object[]{14});
            dt.Rows.Add(new object[]{15});
            dt.Rows.Add(new object[]{16});


            var results = dt.AsEnumerable()
                .Select((x,i) => new {index = i, row = x})
                .GroupBy(y => (int)(y.index/5))
                .Select(z => z.Select(a => a.row).ToList()).ToList();