Какой тип универсальной коллекции .Net Framework позволит / обеспечит эту (ключевую) функциональность? - PullRequest
0 голосов
/ 17 апреля 2009

Мне интересно, какой тип коллекции в System.Collections.Generic будет поддерживать этот сценарий, если он есть:

Public Class MyCollectionBase(Of ItemType, KeyType)
     Inherits System.Collection.Generic.???

     Default Public Shadows ReadOnly Property Item(ByVal key as KeyType) as ItemType
         Get
             ....
         End Get
     End Property

End Class

В прошлом я использовал такое поведение с объектами конфигурации, наследующими System.Configuration.ConfigurationElementType, например:

 Default Public Shadows ReadOnly Property Item(ByVal id As String) As Element
     Get
         Return CType(BaseGet(id), Element)
     End Get
 End Property

В этом случае, однако, мои коллекции не имеют ничего общего с конфигурацией, и мне нужно, чтобы элементы были общими, а также ключ элемента / ID.

Заранее спасибо.

РЕДАКТИРОВАТЬ: Принятие ответа Джоэла. Я чувствую себя идиотом. По какой-то причине я был привязан к идее, что хотел придерживаться реализации ICollection, которая не была IDictionary, возможно, потому что я рефакторинг классов, которые изначально предназначались для использования с отображениями NHibernate. Словарь это, конечно. Я буду прятаться в углу, если я кому-нибудь понадоблюсь.

Ответы [ 4 ]

4 голосов
/ 17 апреля 2009

словарь

0 голосов
/ 17 апреля 2009

Вы ищете System.Collections.Generic.Dictionary

0 голосов
/ 17 апреля 2009

Похоже, что Dictionary<TKey, TValue> - это то, что вы хотите. Я также настоятельно рекомендую переупорядочить параметры типа - в значительной степени каждый словарь / карта / все, что я когда-либо видел с параметрами типа ключ и значение, поставило параметр типа ключа первым.

0 голосов
/ 17 апреля 2009

выглядит как

Dictionary<TKey, ItemType>

требуется.

...