IList(Of T). Сортировать помощь
Dim classCodeDetails As List(Of ClassCodeDetail) =
db.ClassCodeHeaders.Single(Function(cch)
cch.CLCH_ID = classCodeHeaderId
).ClassCodeDetails.ToList()
classCodeDetails.Sort(Function(c1, c2)
c1.Make.MAKE_English.CompareTo(c2.Make.MAKE_English)
)
У меня вопрос, как я могу сортировать по нескольким атрибутам? Я хочу отсортировать по Make.MAKE_English
затем Model.MODL_English
,
Как мне это реализовать?
Спасибо,
~ ск
1 ответ
Решение
Если вам не нужно сортировать на месте, вы можете использовать OrderBy
функция:
Dim sortedList = list.OrderBy(Function(x) x.Prop1).ThenBy(Function(x) x.Prop2)
Ваш пример будет:
Dim classCodeDetails As List(Of ClassCodeDetail) = _
db.ClassCodeHeaders.Single(Function(cch) cch.CLCH_ID = classCodeHeaderId).ClassCodeDetails _
.OrderBy(Function(c1) c1.Make.MAKE_English) _
.ThenBy(Function(c1) c1.Make.MODL_English) _
.ToList()
На самом деле, это правильный способ сделать это (кажется, вы используете LINQ to SQL), так как он будет использовать ORDER BY
в сгенерированном операторе SQL для сортировки данных вместо ручной сортировки на клиенте.