Коллекция J# в коллекцию VB .NET

У меня есть серия вызовов API, которые возвращают типы данных J#. Мне удалось преобразовать большинство типов данных (Integer, Boolean, Double, Float и т. д.) просто отлично.

Теперь мне нужно преобразовать java.Util.Collection в коллекцию VB .NET (ArrayList?)

Вот моя попытка:

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

Я продолжаю получать ошибку времени выполнения «Невозможно преобразовать объект типа «AbstractListlistIterator» в тип «System.Collections.IEnumerator». Есть идеи?


person avenged    schedule 22.12.2010    source источник
comment
По какой причине вы не можете использовать цикл While с it.hasNext?   -  person Oded    schedule 22.12.2010


Ответы (1)


Не тестировалось, но должно работать:

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
person Oded    schedule 22.12.2010