【问题标题】:IList(Of T).Sort helpIList(Of T).排序帮助
【发布时间】:2009-05-11 21:40:38
【问题描述】:
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

【问题讨论】:

  • 如果您使用您使用的语言进行标记,总是有助于获得良好的回复。

标签: vb.net generics ilist


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

【讨论】:

    猜你喜欢
    • 2013-10-10
    • 2011-04-17
    • 2011-10-01
    • 2021-05-25
    • 2019-02-12
    • 2011-04-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多