1
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

4

1 回答 1

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),因为它将ORDER BY在生成的 SQL 语句中用于对数据进行排序,而不是在客户端上手动对其进行排序。

于 2009-05-11T21:43:34.793 回答