Vb.net 通过下一个循环遍历DataTable中的整数列?

Vb.net 通过下一个循环遍历DataTable中的整数列?,vb.net,for-loop,datatable,Vb.net,For Loop,Datatable,我使用fornext循环遍历数据表的列。其中一列是布尔值列,for Next代码适用于该列。但是,迭代整数列的相同代码不起作用(?) 我得到的错误我想我理解了,但我如何修复它?或者我可以不使用For Next循环遍历整数行吗?我是否需要先将这列整数转储到数组中,然后再使用它?我希望这个尽可能简单?在本专栏中,我使用的最多数据是50个元素 尝试遍历整数列时遇到的错误是:“无法将'System.Int32'类型的对象强制转换为'System.Collections.IEnumerable'类型 Fo

我使用fornext循环遍历数据表的列。其中一列是布尔值列,for Next代码适用于该列。但是,迭代整数列的相同代码不起作用(?)

我得到的错误我想我理解了,但我如何修复它?或者我可以不使用For Next循环遍历整数行吗?我是否需要先将这列整数转储到数组中,然后再使用它?我希望这个尽可能简单?在本专栏中,我使用的最多数据是50个元素

尝试遍历整数列时遇到的错误是:“无法将'System.Int32'类型的对象强制转换为'System.Collections.IEnumerable'类型

For Each [boolean] In sourceTable.Rows(0).Item(0)
            Try
                bools(i) = sourceTable.Rows(i).Item(0)
            Catch ex As Exception
                MessageBox.Show(Me, ex.Message, "", MessageBoxButtons.OK, MessageBoxIcon.Error)
            End Try
            i += 1
        Next

        i = 0
        For Each [integer] In sourceTable.Rows(0).Item(3)
            Try
                intVals(i) = sourceTable.Rows(i).Item(3)
            Catch ex As Exception
                MessageBox.Show(Me, ex.Message, "", MessageBoxButtons.OK, MessageBoxIcon.Error)
            End Try
            i += 1
        Next

正确的方法是在Rows集合上循环

Dim row As DataRow
For Each row In sourceTable.Rows
   Try
      Dim boolValue as Bool = Convert.ToBoolean(row.Item(0))
      ....
第二个循环是

For Each row In sourceTable.Rows
   Try
      Dim intValue = Convert.ToInt32(row.Item(3))
      ....

要用于每个(或简单的For),您需要有一个要迭代的集合。行是集合,而行(0)是集合。项(0)表示第一行位置0处的字段。显然,这不是一个集合。

好的,谢谢。我想让我更困惑的是,我用于布尔数据列的For Next循环在编码时起作用。因此,我的想法自然是,“好的,如果是这样的话,那么为整数数据列编写相同的代码也应该是这样。”了解为什么它对布尔值有效,但对整数无效会很有帮助。