为什么我不能枚举这个集合中的项目:?

Cha*_*adD 0 .net vb.net

对象数组是否可枚举?

在代码中查找注释

Public Class AddressCollection

    Inherits System.Collections.ObjectModel.Collection(Of AddressType)

    Public Sub New()

    End Sub

    Public Sub New(ByVal ParamArray addressTypeArray() As AddressType)

        For Each currentAddress As AddressType In Me

            If currentAddress IsNot Nothing Then '<<<<--NEVER HITS THIS LINE
                Me.Add(currentAddress)
            End If
        Next

        For i As Integer = 0 To addressTypeArray.Count - 1

            Dim currentAddress As AddressType = addressTypeArray(i) '<<< BUT IT DOES HIT THIS LINE

            If currentAddress IsNot Nothing Then
                Me.Add(currentAddress)
            End If

        Next

    End Sub
Run Code Online (Sandbox Code Playgroud)

Mat*_*att 8

我想你想要:

For Each currentAddress As AddressType In addressTypeArray
Run Code Online (Sandbox Code Playgroud)

..匹配相当于:

For i As Integer = 0 To addressTypeArray.Count - 1
Run Code Online (Sandbox Code Playgroud)


Mat*_*eid 7

他们是这样.但是你宁愿不想迭代addressTypeArray,不是Me吗?Me在我猜的构造函数中仍然是空的,这就是为什么你从来没有打过线.

干杯,马蒂亚斯