我有这样一堂课:
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();
}
}
如您所见,如果两个Edge
List 相同,那么我认为它们Cycles
是相同的。
现在的问题是如何实施GetHashCode()
?
我试过Edges.GetHashCode()
了,但问题是两个List<Cycle>
,具有相同的Cycle
对象但不同的顺序,将被认为是不同的,即使它们应该是相同的。