【发布时间】:2018-07-06 10:17:10
【问题描述】:
我有一个程序,我在其中使用算法来确定对象的“索引”,以确定它是否是唯一对象,或者它是否真的与另一个类似对象持有相同的数据。
问题在于,由于创建此对象的方式,我不能依赖这些索引的顺序相同。
例如,带有索引的对象:
[0, 1, 2] 与 [0, 2, 1] 的对象相同。
为了处理这个问题,我一直把这些索引放到HashSet<int>中,希望以后我去比较集合时会很容易,因为在集合符号中,{0, 1, 2}是与{0, 2, 1} 相同。
问题是,我不能就这样走了
Object1.UniqueHashSet.equals(Object2.UniqueHashSet)
因为我有很多这些对象要比较,而且我需要确定这些对象列表中有多少个唯一对象。
为了解决这个问题,我一直在尝试将这些结构添加到它们自己的HashSet<HashSet<int>> 中,这样最后我就可以返回 HashSet 中的元素数量。
当我将HashSet<int> 添加到具有值{0, 1, 2} 的HashSet<HashSet<int>> 中,然后将{0, 2, 1} 的HashSet<int> 添加到HashSet<HashSet<int>> 中,它会在集合中创建两个新元素,当我真的只想要一个。所以事实证明我有:{{0, 2, 1}, {0, 1, 2}},而我真正想要的是{{0, 2, 1}}。
几个小时以来,我一直在绞尽脑汁想弄清楚如何做到这一点。有人可以指出我正确的方向吗?
【问题讨论】:
标签: c# set hashset uniqueidentifier indices