public int CompareTo(EventProviderTransaction other) { if (other == null) { throw new ArgumentNullException(nameof(other)); } var thisMin = Revisions.Min(x => x.Version); Contract.Assume(thisMin != null); var otherMin = other.Revisions.Min(x => x.Version); Contract.Assume(otherMin != null); return(thisMin.CompareTo(otherMin)); }