如何维护DataTable的开始和结束索引
How to maintain Start and End index of DataTable
我有一个包含 13 行的数据表。我想创建一批具有开始和结束索引
的 5 行
我想创建一个数组或哈希表来存储开始和结束索引
decimal remainder = Decimal.Divide(dsResult.Tables[0].Rows.Count, 5);
var numberOfRequests = Math.Ceiling((decimal)remainder);
上面的代码会给我输出 3 for 13 records means 5+5+3
所以预期 Array
或 Hashtable
如下
0 0 4
1 5 9
3 10 12
第一列是增量值,
第二列是 DataTable 行起始索引
第三列是数据表行结束索引
请建议我如何实现它。
试试这个
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();
我有一个包含 13 行的数据表。我想创建一批具有开始和结束索引
的 5 行我想创建一个数组或哈希表来存储开始和结束索引
decimal remainder = Decimal.Divide(dsResult.Tables[0].Rows.Count, 5);
var numberOfRequests = Math.Ceiling((decimal)remainder);
上面的代码会给我输出 3 for 13 records means 5+5+3
所以预期 Array
或 Hashtable
如下
0 0 4 1 5 9 3 10 12
第一列是增量值, 第二列是 DataTable 行起始索引 第三列是数据表行结束索引
请建议我如何实现它。
试试这个
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();