public override bool Equals(object obj) { if (!(obj is Maneuver)) { return(false); } var other = obj as Maneuver; if (other.Name != Name) { return(false); } if (other.Uid != Uid) { return(false); } if (other.Movements.Count != Movements.Count) { return(false); } if (!Movements.All(x => other.Movements.Contains(x))) { return(false); } return(true); }