我有许多类型为X的自定义对象.X有许多参数,在集合中必须是唯一的。 (我根据自定义参数创建了自己的equals方法来检查这个) 在x类型的每个对象中,我有一个对象列表y。 我想轻松添加/删除/修改对象y。
例如:
要编写add方法,它会像add(objTypeX,objTypeY) 我会检查或集合已经有一个objTypeX。 如果是这样的话:我会将objTypeY添加到已经存在的objTypeX中 else:我会创建objTypeX并将objTypeY添加到此对象。
要修改objTypeY,它将类似于(objTypeX,objTypeY,newobjTypeY) 我会从集合中获取objTypeX并将objTypeY修改为newobjTypeY
我应该使用哪些收藏品?我尝试使用hashset但是我可以从列表中获取一个特定的对象,而不会在列表中运行直到我找到该对象。
我在vb.net 3.5中开发这个
答案 0 :(得分:2)
为了有效查找,您应该使用带有唯一参数的哈希来覆盖GetHashCode();那么你可以使用Dictionary<X, IList<Y>>
(抱歉,不知道泛型的VB语法......),或者,如果X处理自己的Y集合,只需使用HashSet<X>
。