// if you override Equals you must also override GetHashCode, otherwise if this is // used as a key in a hash table things wouldn't work correctly public override int GetHashCode() { return(ML.GetHashCode() ^ AP.GetHashCode() ^ SI.GetHashCode()); }