私はそのようなクラスを持っています:
public class Cycle
{
public List<int> Edges
{
get;
private set;
}
public override bool Equals(object obj)
{
Cycle cycle = (Cycle)obj;
var list1 = cycle.Edges;
var list2 = Edges;
var same = list1.Except(list2).Count() == 0 &&
list2.Except(list1).Count() == 0;
return same;
}
public override int GetHashCode()
{
// return Edges.GetHashCode();
}
}
ご覧のとおり、2つのEdge
リストが同じである場合、私は同じと見なしCycles
ます。
ここでの問題は、どのように実装するGetHashCode()
かです。
試してみEdges.GetHashCode()
ましたが、問題は、オブジェクトがList<Cycle>
同じで順序が異なる2つが、同じCycle
であっても異なると見なされることです。