2010-12-22 4 views
0

Ich habe eine Reihe von API-Aufrufen, die J # -Datentypen zurückgeben. Ich konnte die meisten Datentypen (Integer, Boolean, Double, Float, usw.) einfach konvertieren.J # Sammlung zu VB .NET Sammlung

Was ich jetzt tun müssen, ist eine java.util.Collection zu einer VB .NET Sammlung (Arraylist?) Konvertieren

Hier mein Versuch ist:

Public Function MakeDotNETCollection(ByVal javaCol As java.util.Collection) As Collection 

    Dim dotNetCol As Collection 

    If Not javaCol Is Nothing Then 
     dotNetCol = New Collection 

     Dim it As IEnumerator = javaCol.iterator() 

     For Each it In CType(javaCol, Collection) 
     dotNetCol.Add(it.Current) 
     Next it 

    End If 

    Return dotNetCol 
    End Function 

Ich halte einen Laufzeitfehler erhalten „Kann nicht das Objekt des Typs‚AbstractListlistIterator‘werfen‚System.Collections.IEnumerator zu geben Irgendwelche Ideen

+0

Gibt es einen Grund, warum Sie eine 'While'-Schleife nicht mit' it.hasNext' verwenden können? – Oded

Antwort

1

Nicht getestet, aber sollte funktionieren.?

Public Function MakeDotNETCollection(ByVal javaCol As java.util.Collection) As Collection 

    Dim dotNetCol As Collection 

    If Not javaCol Is Nothing Then 
    dotNetCol = New Collection 

    Dim it As java.util.Iterator = javaCol.iterator() 

    While it.HasNext() 
     dotNetCol.Add(it.next()) 
    End While 

    End If 

    Return dotNetCol 

End Function