какую коллекцию я должен использовать - PullRequest
0 голосов
/ 23 мая 2010

У меня есть несколько пользовательских объектов типа X. X имеет ряд параметров и должен быть уникальным в коллекции.(Я создал свой собственный метод equals на основе пользовательских параметров, чтобы проверить это). В каждом объекте типа x у меня есть список объектов y.Я хочу легко добавить / удалить / изменить объект y.

Например:

Чтобы написать метод add, это было бы что-то вроде add (objTypeX, objTypeY), который я бы проверил, или в коллекциях уже есть objTypeX.Если это так: я бы добавил objTypeY к уже существующему objTypeX, иначе: я бы создал objTypeX и добавил objTypeY к этому объекту.

Чтобы изменить objTypeY, это было бы что-то вроде (objTypeX, objTypeY, newobjTypeY) Iвытащит objTypeX из коллекций и изменит objTypeY на newobjTypeY

Какие коллекции мне следует использовать?Я пробовал с хэш-сетом, но я могу получить конкретный объект из списка, не бегая по списку, пока не найду этот объект.

Я разрабатываю это в vb.net 3.5

1 Ответ

2 голосов
/ 23 мая 2010

Для эффективного поиска вы должны переопределить GetHashCode () хешем, который учитывает уникальные параметры; тогда вы можете использовать Dictionary<X, IList<Y>> (извините, не знаете синтаксис VB для обобщений ...) или, если X обрабатывает свою собственную коллекцию Y, просто используйте HashSet<X>.

...