VB.Net IEnumerator (целого числа, MyClass) невозможен?

Как вернуть IEnumerator из SortedDictionary(Of Integer, MyClass)

У меня есть это.

Dim dictionaryTest As New SortedDictionary(Of Integer, MyClass)
Dim enumerator As IEnumerator(Of Integer, MyClass) = dictionaryTest.GetEnumerator() '<- not possible.

Я хочу такую ​​​​функцию, как

public function getTestEnumerator() as IEnumerator(Of Integer, MyClass)
   return dictionaryTest.GetEnumerator()
end function

Ошибка в среде IDE
'System.Collections.IEnumerator' has no type parameters and so cannot have type arguments.


person SSpoke    schedule 09.07.2013    source источник
comment
Вы импортировали пространство имен System.Collections.Generic? Также я считаю, что это на самом деле IEnumerator(Of KeyValuePair(Of Integer, Myclass))   -  person lc.    schedule 09.07.2013
comment
Это работает отлично, это было Of KeyValuePair(...) то, чего мне не хватало. Странно, почему мне не нужно использовать KeyValuePair для SortedDictionary, но мне это нужно для GetEnumerator(). Я оставил просто IEnumerator тоже вроде работает   -  person SSpoke    schedule 09.07.2013
comment
Не импортировал System.Collections.Generic по-прежнему никаких ошибок или предупреждений компилятора. Мне кажется, эта библиотека не нужна, Imports System.Collections работает, но, возможно, я все импортирую, не уверен   -  person SSpoke    schedule 09.07.2013
comment
Существует два интерфейса IEnumerable — универсальный IEnumerable(Of T) и нестандартный IEnumerable. IIRC первый находится в System.Collections.Generic, а второй в System.Collections   -  person lc.    schedule 09.07.2013
comment
Что касается KeyValuePair, я не уверен, почему он вам не понадобился в топовом примере, VB должно быть делает что-то милое за кулисами. Я почти уверен, что образец не будет работать на C#.   -  person lc.    schedule 09.07.2013
comment
О, спасибо, в любом случае, вы могли бы также ответить на вопрос, если хотите. Да, я пытаюсь сделать это как можно проще, поэтому я придерживаюсь VB, ха-ха. Я бы даже не использовал эти перечислители, но модификация массивов во время цикла - вот почему я тоже вынужден.   -  person SSpoke    schedule 09.07.2013
comment
Без проблем. Не стесняйтесь ответить на вопрос самостоятельно, если хотите. Кроме того, вы нашли решение. Я просто случайно указал вам правильное направление. :)   -  person lc.    schedule 09.07.2013


Ответы (1)


Dim dictionaryTest As New SortedDictionary(Of Integer, MyClass)

Ответ заменить

Dim enumerator As IEnumerator(Of Integer, MyClass) = dictionaryTest.GetEnumerator() '<- not possible.

с участием

Dim enumerator As IEnumerator(Of KeyValuePair(Of Integer, Myclass)) = dictionaryTest.GetEnumerator()
person SSpoke    schedule 09.07.2013