Я реализовал IComparer для сортировки результатов на странице поиска. Иногда в производственной среде пользователи получают эту ошибку. Все данные для поиска (критерии, разбиение на страницы, сортировка) находятся в строке запроса, и я использую библиотеку ELMAH, поэтому я могу увидеть подробности в отчете об ошибке по электронной почте. Если я скопирую строку запроса от пользователя, получившего ошибку, в свой браузер, страница будет работать нормально. Так что это своего рода недетерминированный, по-видимому.
Это мой компаратор:
Public Class ReverseDateComparer
Implements IComparer(Of Promotion)
Public Function Compare(ByVal x As Promotion, ByVal y As Promotion) As Integer Implements System.Collections.Generic.IComparer(Of Promotion).Compare
If y.ExpirationDate = x.ExpirationDate Then
Return x.PlainTitle.CompareTo(y.PlainTitle)
Else
Return y.ExpirationDate.CompareTo(x.ExpirationDate)
End If
End Function
End Class
Итак, в основном, сортируйте по дате истечения срока действия по убыванию, а затем по возрастанию названия. Есть ли в этом что-то явно не так?