//============================================================================*
        // CompareBasics()
        //============================================================================*

        public int CompareBasics(cBallistics Ballistics)
        {
            if (Ballistics == null)
            {
                return(1);
            }

            int rc = BallisticCoefficient.CompareTo(Ballistics.BallisticCoefficient);

            if (rc == 0)
            {
                rc = BulletDiameter.CompareTo(Ballistics.BulletDiameter);

                if (rc == 0)
                {
                    rc = BulletWeight.CompareTo(Ballistics.BulletWeight);

                    if (rc == 0)
                    {
                        rc = BulletLength.CompareTo(Ballistics.BulletLength);

                        if (rc == 0)
                        {
                            rc = MuzzleVelocity.CompareTo(Ballistics.MuzzleVelocity);
                        }
                    }
                }
            }

            return(rc);
        }
 public bool Equals(Cartridge other)
 {
     if (ReferenceEquals(null, other))
     {
         return(false);
     }
     if (ReferenceEquals(this, other))
     {
         return(true);
     }
     return(DragFunction == other.DragFunction &&
            BC.Equals(other.BC) &&
            string.Equals(Name, other.Name,
                          StringComparison.InvariantCultureIgnoreCase) &&
            MuzzleVelocity.Equals(other.MuzzleVelocity) &&
            Caliber.Equals(other.Caliber) &&
            Length.Equals(other.Length) &&
            WeightGrains.Equals(other.WeightGrains));
 }