В настоящее время у меня есть объект, реализующий интерфейс IComparable (ASP.NET 3.5, VB). Когда я помещаю несколько экземпляров объектов в список Generics, я сортирую их, делая простой someList.Sort
. Моя CompareTo()
функция заключается в следующем:Использование CompareTo() для сортировки на основе нескольких столбцов
Public Function CompareTo(ByVal obj As Object) As Integer Implements
System.IComparable.CompareTo
'default is number of votes (opposite direction, highest first)'
Dim sent As Sentence = CType(obj, Sentence)
Return Not Points.CompareTo(sent.Points)
End Function
Это работает отлично, за исключением того, теперь мне нужно отсортировать по другому свойству, свойства DateSubmitted, как подмножество точек. Например, если в трех предложениях есть голоса: 3, 1, 1, я хочу сначала с наивысшими голосами (очевидно) и двумя предложениями с одним голосом, причем тот, который был представлен самым ранним, должен быть указан.
Возможно ли это с помощью CompareTo(), или я должен просто снова нажать базу данных и отсортировать ее там?
Благодаря
Я не могу получить someList.OrderBy, чтобы всплывать в intellisense ... Я уверен, что я использую 3.5 (я использую VS08), но я предполагаю, что это возможно, я не? – Jason
У вас есть 'Imports System.Linq'? Убедитесь, что в вашем Web.config есть « ». –
ах! нормально ... я импортировал Linq ... что представляет собой элемент? является ли экземпляр объекта? – Jason