【发布时间】:2013-09-25 09:00:54
【问题描述】:
我有一个我的 g 类的列表
Public Class g
Public x as Decimal
Public y As Decimal
End Class
Dim MyQuery As List(Of g) = ...
我尝试排序
Dim sorted As List(Of g) = MyQuery.OrderBy(Function(x) x.y).ThenBy(Function(x) x.x).ToList()
不幸的是,我收到以下错误
至少一个对象必须实现 IComparable。
我在这里做错了什么? 当我尝试按一个属性排序时,我没有收到任何错误
Dim sorted As List(Of g) = MyQuery.OrderBy(Function(x) x.y).ToList()
【问题讨论】:
-
请不要混淆您的代码。提供有意义的样本,例如
Function(x) x.x是什么? -
@TimSchmelter 感谢您刚刚更新的评论
-
这应该可以工作(假设
x/y实际上是decimal)。也许尝试为ThenBy查询使用不同的变量名,即ThenBy(function(y) y.y)- 不确定它是否会有所作为,但它们可能会发生冲突。 -
我刚刚测试过,它可以工作。请提供一个实际重现您的错误的示例...很可能您没有使用小数,但其他类型和这些类型又不实现
IComparable。 -
@DanielHilgarth 您介意将其发布为答案吗?就是这样
标签: .net vb.net linq sorting generic-list