我应该使用哪个系列

时间:2010-05-23 17:03:58

标签: .net vb.net .net-3.5 collections

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

例如:

要编写add方法,它会像add(objTypeX,objTypeY) 我会检查或集合已经有一个objTypeX。  如果是这样的话:我会将objTypeY添加到已经存在的objTypeX中  else:我会创建o​​bjTypeX并将objTypeY添加到此对象。

要修改objTypeY,它将类似于(objTypeX,objTypeY,newobjTypeY) 我会从集合中获取objTypeX并将objTypeY修改为newobjTypeY

我应该使用哪些收藏品?我尝试使用hashset但是我可以从列表中获取一个特定的对象,而不会在列表中运行直到我找到该对象。

我在vb.net 3.5中开发这个

1 个答案:

答案 0 :(得分:2)

为了有效查找,您应该使用带有唯一参数的哈希来覆盖GetHashCode();那么你可以使用Dictionary<X, IList<Y>>(抱歉,不知道泛型的VB语法......),或者,如果X处理自己的Y集合,只需使用HashSet<X>