我有一个包含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
Array
或Hashtable
如下0 0 4 1 5 9 3 10 12
第一列是增量值, 第二列是DataTable Row Start索引 第三列是DataTable Row End索引
请建议我如何实施。
答案 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();