2010-05-23 24 views
0

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

Например:

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

Чтобы изменить objTypeY, это было бы что-то вроде (objTypeX, objTypeY, newobjTypeY) я хотел бы получить objTypeX из коллекций и изменения objTypeY в newobjTypeY

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

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

ответ

2

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

+0

Thx, Но как я могу вызвать объект в HashSet? Какой метод я должен использовать? – Masna

+0

Я перешел обратно в словарь, thx. – Masna

Смежные вопросы