public override ValidationResults Validate(IEnumerable <TSource> collection) { return(!collection.SequenceEqual( orderDirection == OrderDirection.Ascending ? collection.OrderBy(keySelector, keyComparer) : collection.OrderByDescending(keySelector, keyComparer)) ? ValidationResults.Failed(this.ErrorMessage) : ValidationResults.Success); }