如何在数据表vbnet中按索引选择列

时间:2015-09-15 11:38:07

标签: indexing multiple-columns

有人知道如何从3到12的数据表中选择(ex)列? 例如在matlab中存在一些':'运算符来表示“占用所有元素”,我需要在vbnet中使用某种类型的

谢谢!

1 个答案:

答案 0 :(得分:0)

您的问题是如何在VB.Net中实现此matlab语句?

datatable(:, 3:12)

所以你想从每一行得到第3列到第12列吗?

我不认识除迭代之外的任何方法。这是一个小例子,它应该为datatable(:,1:3)创建所需的输出。请注意,在这种情况下,startVal为1,endVal为3:

Module Module1

    Sub Main()
        ' Create a table.
        Dim table As DataTable = New DataTable("Example")

        ' Add columns.
        table.Columns.Add(New DataColumn("ID", GetType(Integer)))
        table.Columns.Add(New DataColumn("Name", GetType(String)))
        table.Columns.Add(New DataColumn("Letters", GetType(Integer)))
        table.Columns.Add(New DataColumn("Animal", GetType(String)))

        ' Add rows.
        table.Rows.Add(10, "Hello", 5, "Dog")
        table.Rows.Add(20, "World", 5, "Cat")
        table.Rows.Add(30, "Example", 7, "Mouse")
        table.Rows.Add(40, "For", 3, "Horse")
        table.Rows.Add(50, "You", 3, "Elephant")

        ' Define your start and end.
        Dim startVal As Integer = 1
        Dim endVal As Integer = 3

        ' Iterate the Rows.
        For indexRows = 0 To table.Rows.Count - 1
            ' Get current Row.
            Dim currentRow As DataRow = table.Rows.Item(indexRows)
            ' Iterate your desired Columns.
            For indexColumns = startVal To endVal
                ' Write the current Column and add some Whitespace for better readability.
                Console.Write(currentRow(indexColumns) & vbTab)
            Next
            ' When done with the CurrentRow add a Linebreak for the next Row
            Console.WriteLine()
        Next
    End Sub

End Module