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
排序。
我该如何实现?
谢谢,
〜CK
答案 0 :(得分:2)
如果您不需要就地排序,可以使用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),因为它将在生成的SQL语句中使用ORDER BY
来对数据进行排序,而不是在客户端上手动对其进行排序。