这个匿名对象没有实现IComparable接口

时间:2021-04-14 15:08:10

https://www.cnblogs.com/felixnet/p/5193086.html

https://docs.microsoft.com/zh-cn/dotnet/api/system.icomparable-1?redirectedfrom=MSDN&view=netframework-4.7.2

中文:必须至少有一个对象实现 IComparable。

序列排序时报这个错误

lstReports.OrderBy(r => new { r.DepartmentName, r.ReportNo }).ToList(); //error occured

在LINQ to SQL/Entity中可以这么用,LINQ 2 Object 不能这么用,因为 new { r.DepartmentName, r.ReportNo } 这个匿名对象没有实现IComparable接口,也无法实现这个接口

其实多字段排序用 ThenBy/ThenByDescending 就可以:

lstReports.OrderBy(r => r.DepartmentName).ThenBy(r => r.ReportNo).ToList();