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

VB.NET自定义对象列表排序出现BC32017错误如何解决

问题排查与修正

错误原因

  • 语法错误1:混淆了VB LINQ查询语法和方法语法的写法,VB的LINQ查询语法中Order By不需要加括号,Ascending也不能放在括号内
  • 语法错误2:代码中引用类属性写的是mdate,和类定义的mDate大小写不一致,虽然VB默认不区分大小写,但建议保持一致避免后续出现意外问题
  • 隐形问题:LINQ语句换行如果没有对应语法支持,会被编译器识别为两行独立代码,直接触发语法错误

正确代码示例

你定义的sMSG自定义类没有问题,排序代码可以任选下面两种写法:

写法1:LINQ查询语法(和你原有写法逻辑更贴近)

Dim ordered = From obj In SortedList
              Order By obj.mDate Ascending
SortedList = ordered.ToList()

注意Order和By中间需要加空格,不要加括号,Ascending直接跟在属性名后即可。

写法2:LINQ方法语法(更简洁,新手更不容易写错)

SortedList = SortedList.OrderBy(Function(obj) obj.mDate).ToList()

该写法单句即可完成排序逻辑,不需要处理换行规则,使用门槛更低。

补充说明

你设计的实现思路完全可行:通过自定义类存储文件名和邮件发送日期,将实例存入列表后排序,再遍历处理的逻辑没有问题,可以稳定实现按发送日期顺序处理MSG文件的需求。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.24 16:06:09