vb.Net - 循环遍历数组返回错误:类型的表达式,它不是集合类型

时间:2015-03-05 16:31:17

标签: .net vb.net arraylist

我试图通过使用for Each循环来获取数组的索引值。 我在我的代码中出错,我不知道如何纠正。

我无法遍历ArrayList,因为它不是数字。

Dim num As Integer = 0
If Not IsNothing(BreadCrumbIDs) Then
    For Each num In BreadCrumbIDs
        If num >= 0 And num <= 1 Then
            Console.WriteLine(num)
        Else
            ' Do nothing
        End If
    Next
End If

我想循环遍历arrylist并获取它的索引/数值。

假设BreadCrumbsIds包含:

0 - 鞋子 1 - 靴子 2 - 皮靴

我希望在值介于0和1之间时执行某些操作,而当值为2时则执行其他操作。

数组列表属性代码:

    Public Property BreadCrumbIDs() As ArrayList
        Get
            Return bcIDs
        End Get
        Set(ByVal value As ArrayList)
            bcIDs = value
        End Set
    End Property

2 个答案:

答案 0 :(得分:0)

不是循环列表中的项目,而是循环索引。

For index As Integer = 0 To BreadCrumbIDs.Count-1

然后您可以使用

访问这些项目
BreadCrumbIDs(index)

如果BreadCrumbIDs不是数字列表,那么我建议您更改其名称。

另一个选项可能是使用列表的IndexOf方法。

答案 1 :(得分:0)

另一个正确的答案是:

如果您正在调用以下函数:

Public Function Enumerate() As structPayments()

使用for循环,例如

For Each item In invPay.Enumerate(InvoiceNo)

您将在VS2015中获得相同的异常,因为您将变量/参数传递给不接受任何参数的函数。

仔细检查你的功能并确保它被设置为接收参数,在我的情况下,它应该改为:

Public Function Enumerate(InvoiceNo as String) As structPayments()