至少有一个对象必须在Max()中实现IComparable

时间:2015-10-01 22:36:44

标签: c# linq

任何人都可以帮助我,为什么我会收到错误

  

至少有一个对象必须实现icomparable

从下面的代码?

item.IndicatorMeasurements
    .OrderBy(a => a.EntryDateRange.ToDateTime)
    .Max()
    .Color;

1 个答案:

答案 0 :(得分:4)

因为您正在尝试查找IndicatorMeasurements列表的最大值,并且编译器不知道如何执行此操作。如果您想要具有最新日期的对象,您可以实现该界面,或者更容易实现,如果列表不是太长,您可以使用

OrderBy(a => a.EntryDateRange.ToDateTime).Last()

OrderByDescending(a => a.EntryDateRange.ToDateTime).First()

如果列表很长,您应该实现该接口,或者使用您自己的方法来查找最大项目。谢谢安德烈的提示。