如何使用vb.net将数据表划分为N个部分?

如何使用vb.net将数据表划分为N个部分?,.net,vb.net,datatable,.net,Vb.net,Datatable,我想把数据表分成N个部分。假设N=5 如果datatable.rows.count为13,则datatable应拆分为3组 其中: 第一组有5项记录 第二组有5项记录和 第三组有3项记录 如果datatable.rows.count为16,则datatable应拆分为4组,其中: 第一组有5项记录 第二组有5项记录 第三组有5项记录和 第四盘有1项记录 怎么可能呢?当我在网上搜索时,我知道它可以像这样实现 但是我想做一个简单的函数,其中传递datatable和N的值 在循环中循环是令人困

我想把数据表分成N个部分。假设N=5

如果datatable.rows.count为13,则datatable应拆分为3组 其中:

  • 第一组有5项记录
  • 第二组有5项记录和
  • 第三组有3项记录
如果datatable.rows.count为16,则datatable应拆分为4组,其中:

  • 第一组有5项记录
  • 第二组有5项记录
  • 第三组有5项记录和
  • 第四盘有1项记录
怎么可能呢?当我在网上搜索时,我知道它可以像这样实现

但是我想做一个简单的函数,其中传递datatable和N的值


在循环中循环是令人困惑的。

这可能有助于满足您的需求

'create a dtb for demo
Dim dtbSource As New DataTable("MyDataTable")
dtbSource.Columns.Add("Column1", GetType(String))
dtbSource.Columns.Add("Column2", GetType(String))
dtbSource.Columns.Add("Column3", GetType(String))
dtbSource.Rows.Add("1", "2", "3")
dtbSource.Rows.Add("2", "2", "3")
dtbSource.Rows.Add("3", "2", "3")
dtbSource.Rows.Add("4", "2", "3")
dtbSource.Rows.Add("5", "2", "3")
dtbSource.Rows.Add("6", "2", "3")
dtbSource.Rows.Add("7", "2", "3")
dtbSource.Rows.Add("8", "2", "3")
dtbSource.Rows.Add("9", "2", "3")
dtbSource.Rows.Add("10", "2", "3")
dtbSource.Rows.Add("11", "2", "3")
dtbSource.Rows.Add("12", "2", "3")
dtbSource.Rows.Add("13", "2", "3")
'now split the datatable
Dim n As Integer = 5 'number of rows per datatable
Dim dst As New DataSet("Output")
For i As Integer = 0 To dtbSource.Rows.Count - 1 Step n
  Dim intLastRow As Integer = i + n - 1
  If intLastRow > dtbSource.Rows.Count - 1 Then intLastRow = dtbSource.Rows.Count - 1
  Dim dtbNew As DataTable = dtbSource.Clone 'copy structure of original datatable 
  dtbNew.TableName = dtbSource.TableName & "_" & (i \ n).ToString
  For j As Integer = i To intLastRow
    dtbNew.ImportRow(dtbSource.Rows(j))
  Next j
  dst.Tables.Add(dtbNew)
Next i
'the split datatables are available in dst.Tables
MsgBox(dst.Tables(1).Rows(2).Item(0).ToString) 'table 2, row 3, column 1
Dim page As Integer = 0
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
    Dim data As New DataClasses1DataContext
    Dim m = (From master In data.Masters Select master).Skip(page * 5).Take(5)
    DataGridView1.DataSource = m
    page += 1
End Sub

你说的
集合是什么意思?您要找的是标准数据结构吗?与C中的相同#