public override bool Equals(object obj) { if (obj == null) return false; if (!(obj is Edge)) return false; Edge that = (Edge)obj; return this.FirstTile == that.FirstTile && this.SecondTile == that.SecondTile; }