public override int GetHashCode()
 {
     unchecked
     {
         int result = base.GetHashCode();
         result = (result * 397) ^ PeakCountRatio.GetHashCode();
         result = (result * 397) ^ (RetentionTime.HasValue ? RetentionTime.Value.GetHashCode() : 0);
         result = (result * 397) ^ (StartRetentionTime.HasValue ? StartRetentionTime.Value.GetHashCode() : 0);
         result = (result * 397) ^ (EndRetentionTime.HasValue ? EndRetentionTime.Value.GetHashCode() : 0);
         result = (result * 397) ^ (Fwhm.HasValue ? Fwhm.Value.GetHashCode() : 0);
         result = (result * 397) ^ (Area.HasValue ? Area.Value.GetHashCode() : 0);
         result = (result * 397) ^ (AreaMs1.HasValue ? AreaMs1.Value.GetHashCode() : 0);
         result = (result * 397) ^ (AreaFragment.HasValue ? AreaFragment.Value.GetHashCode() : 0);
         result = (result * 397) ^ (BackgroundArea.HasValue ? BackgroundArea.Value.GetHashCode() : 0);
         result = (result * 397) ^ (BackgroundAreaMs1.HasValue ? BackgroundAreaMs1.Value.GetHashCode() : 0);
         result = (result * 397) ^ (BackgroundAreaFragment.HasValue ? BackgroundAreaFragment.Value.GetHashCode() : 0);
         result = (result * 397) ^ (Height.HasValue ? Height.Value.GetHashCode() : 0);
         result = (result * 397) ^ Ratios.GetHashCodeDeep();
         result = (result * 397) ^ (Truncated.HasValue ? Truncated.Value.GetHashCode() : 0);
         result = (result * 397) ^ Identified.GetHashCode();
         result = (result * 397) ^ (LibraryDotProduct.HasValue ? LibraryDotProduct.Value.GetHashCode() : 0);
         result = (result * 397) ^ (IsotopeDotProduct.HasValue ? IsotopeDotProduct.Value.GetHashCode() : 0);
         result = (result * 397) ^ OptimizationStep;
         result = (result * 397) ^ Annotations.GetHashCode();
         result = (result * 397) ^ UserSet.GetHashCode();
         return(result);
     }
 }
 public override int GetHashCode()
 {
     unchecked
     {
         int result = base.GetHashCode();
         result = (result * 397) ^ PeakCountRatio.GetHashCode();
         result = (result * 397) ^ (RetentionTime.HasValue ? RetentionTime.Value.GetHashCode() : 0);
         result = (result * 397) ^ LabelRatios.GetHashCodeDeep();
         return(result);
     }
 }