2010-05-23 6 views
0

J'ai un certain nombre d'objets personnalisés de type X. X a un certain nombre de paramètres et doit être unique dans la collection. (J'ai créé ma propre méthode d'égalité basée sur les paramètres personnalisés pour l'examiner) Dans chaque objet de type x, j'ai une liste d'objets y. Je veux ajouter/supprimer/modifier facilement un objet y.quelle collection dois-je utiliser

Par exemple:

Pour écrire la méthode add, ce serait quelque chose comme add (objTypeX, objTypeY) Je vérifierais ou les collections dispose déjà d'un objTypeX. Si oui: j'ajouterais objTypeY au objTypeX déjà existant sinon: je créerais objTypeX et ajouterais objTypeY à cet objet.

Pour modifier un objTypeY, ce serait quelque chose comme (objTypeX, objTypeY, newobjTypeY) je recevrais objTypeX sur les collections et modifier objTypeY à newobjTypeY

Quelles collections dois-je utiliser? J'ai essayé avec hashset mais je peux obtenir un objet spécifique hors de la liste, sans descendre la liste jusqu'à ce que je trouve cet objet.

Je développe cela dans vb.net 3.5

Répondre

2

pour la recherche efficace, vous devez remplacer GetHashCode() avec un hachage qui prend les paramètres uniques en compte; alors vous pouvez utiliser un Dictionary<X, IList<Y>> (désolé, ne connaissez pas la syntaxe VB pour les génériques ...) ou, si X gère sa propre collection de Y, utilisez simplement un HashSet<X>. Mais comment puis-je appeler l'objet alors dans le HashSet?

+0

Thx, Quelle méthode devrais-je utiliser? – Masna

+0

Je suis revenu au dictionnaire, thx. – Masna