如何解决问题:“至少有一个对象必须实现IComparable。”

时间:2014-03-08 01:24:03

标签: vb.net linq linq-to-entities

所以这就是错误的界限:

@For Each item In futureClasses.OrderBy(
        Function(c) c.ClassDates.OrderBy(
            Function(d) d.Value).ToList).ToList

班级结构的相关部分是:

Public Class [Class]
  Public Property ClassDates As List(Of ClassDate) = New List(Of ClassDate)
End Class

Public Class ClassDate
  Implements IComparable(Of ClassDate)

  Public Property Value As Date

Public Function CompareTo(other As ClassDate) As Integer Implements IComparable(Of ClassDate).CompareTo
  Return Me.Value < other.Value
End Function  

End Class

我们的想法是构建一个[Class]对象列表(迭代),这些对象按顺序排列在时间流中。

我得到的错误是:

  

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

我在那条线上设置了一个断点。发生错误时futureClasses包含2个[Class]元素,每个元素都包含一个ClassDate

值是:
futureClasses(0).ClassDates(0).Value = #3/13/2014#
futureClasses(1).ClassDates(0).Value = #4/17/2014#

有没有人知道为什么会这样或被抛出?

1 个答案:

答案 0 :(得分:2)

我认为你要找的是这样的:

futureClasses.OrderBy(Function(c) c.ClassDates.OrderBy(Function(d) d.Value).First().Value).ToList