Код VB6, который вы выделили, выглядит как пользовательский класс-оболочка для встроенного типа Collection
.Часть перечислителя должна разрешать For Each ... Next
в пользовательской коллекции.
В зависимости от назначения класса коллекции, он может не понадобиться в .NET.Одна из причин, по которой в VB6 были созданы пользовательские классы коллекций, заключалась в обеспечении безопасности типов, поскольку Collection
будет обеспечивать только Object
.Для этого использования вы можете использовать List (Of T)
или Dictionary (Of TKey, TValue)
в зависимости от того, как была использована коллекция.
Если в коллекции есть дополнительная логика, вы все равно можете придерживаться классов инфраструктуры и добавить один илидополнительные методы расширения для обработки дополнительной логики, или вы можете наследовать от Collection (Of T)
или KeyedCollection (Of TKey, TItem)
.Базовые классы обеспечат шаблонную логику коллекции, и вы можете сосредоточиться на предоставлении дополнительной логики в своем унаследованном классе.
Если код, который использовал коллекцию VB6, был проиндексирован как строкой, так и целым числом, то вам может потребоватьсясделать немного больше работы, чтобы получить рабочий эквивалент .NET, но я бы не ожидал этого (и даже если бы это было сделано, наиболее вероятный вариант использования мог бы быть для удаления элементов, и вы могли бы переписать это для работыправильно со строковым индексом .NET-словаря).