2010-05-23 117 views
0

我有许多X类型的自定义对象。X有许多参数,并且在集合中必须是唯一的。 (我根据自定义参数创建了我自己的equals方法来检查它) 在x类型的每个对象中,我都有一个对象列表y。 我想要轻松添加/删除/修改对象y。我应该使用哪个集合

例如:

要编写add方法,它会像加(objTypeX,objTypeY) 我会检查或收藏已经有一个objTypeX。 如果是这样的话:我会将objTypeY添加到已有的objTypeX 其他:我会创建o​​bjTypeX并将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 2010-05-23 17:14:44

+0

我改回字典,thx。 – Masna 2010-05-23 21:31:26