protected int DefaultCompareTo <SpecificType>(ObjectKey obj, SpecificTypeDelegate <SpecificType> specificTypeComparer) where SpecificType : ObjectKey { SpecificType other = obj as SpecificType; if (ReferenceEquals(other, null)) { return(KeyType.CompareTo(obj.KeyType)); } else { return(specificTypeComparer(other)); } }
public int Compare(ComparisonKey that, ComparisonLevel level) { int result = KeyType.CompareTo(that.KeyType); if (result != 0 || level <= ComparisonLevel.KeyType) { return(result); } result = CompareSpecific(that, level); if (result != 0 || level < ComparisonLevel.Adduct) { return(result); } result = Adduct.CompareTo(that.Adduct); if (result != 0 || level <= ComparisonLevel.Adduct) { return(result); } return(result); }