You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

VB.NET 3.5环境下如何按LastDate属性对lstDocumentChildren对象列表排序

解决方案:VB.NET + .NET 3.5 按对象日期属性排序列表

针对你在VS2008 + .NET 3.5环境下,需要对lstDocumentChildren列表按LastDate日期属性排序的需求,可参考以下两种实现方案:

方案1:使用List自带Sort方法(兼容性最优)

直接调用List(Of T)的内置Sort方法,传入Lambda比较委托即可实现排序,无需额外引入命名空间:

' 放在你标注的排序位置
' 以下为升序排序,如需降序,将x和y的位置互换即可:y.LastDate.CompareTo(x.LastDate)
lstDocumentChildren.Sort(Function(x, y) x.LastDate.CompareTo(y.LastDate))

如果你的环境特殊不支持Lambda表达式,可以自定义比较器实现:

' 先定义比较器类,替换代码中的「文档明细类」为你mobjDocumentsDetail的实际类型
Public Class DocumentDetailComparer
    Implements IComparer(Of 文档明细类)
    Public Function Compare(x As 文档明细类, y As 文档明细类) As Integer Implements IComparer(Of 文档明细类).Compare
        Return x.LastDate.CompareTo(y.LastDate)
    End Function
End Class

' 排序时调用
lstDocumentChildren.Sort(New DocumentDetailComparer())

方案2:使用LINQ排序(代码更简洁)

.NET 3.5已支持LINQ操作,引入System.Linq命名空间后,可直接调用排序方法生成新的有序列表:

' 升序排序
lstDocumentChildren = lstDocumentChildren.OrderBy(Function(item) item.LastDate).ToList()
' 如需降序,替换为:lstDocumentChildren = lstDocumentChildren.OrderByDescending(Function(item) item.LastDate).ToList()

重要提醒

你当前的代码逻辑是先填充lstDocumentChildren、再填充ListView控件,仅对列表排序不会同步更新已渲染的ListView内容顺序,建议调整逻辑顺序:

  • 先遍历所有子项,将全部mobjDocumentsDetail添加到lstDocumentChildren中
  • 执行上述排序操作
  • 遍历排序后的lstDocumentChildren,筛选符合状态的项填充ListView、更新计数

内容的提问来源于stack exchange,提问作者Alexander

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.08 19:48:01