这是我的代码:
var distinctDateValues = dt.AsEnumerable()
.Select(row => new
{
Date = DateTime.Parse(row.Field<string>("DAY"))
})
.Distinct()
.ToList();
distinctDateValues.Sort(); // getting error on this line
distinctDateValues中的值为:
我收到的错误是“无法比较数组中的两个元素。”
有人能告诉我在这里做错了什么吗?我想对distinctDateValues中的日期列进行排序。
OrderBy
? - Grant ThomasList<Something>
的排序,每次比较两个元素时,算法必须能够确定哪一个大于另一个。这要求其中一个对象实现IComparable
、IComparable<Something>
或类似接口。您可以使用匿名类型,例如new { Date = xxx }
。虽然匿名类型重写了Equals
和GetHashCode
方法,但它们并没有实现IComparable
或类似接口。因此,您可以判断两个匿名类型的实例是否相等,但无法确定一个实例是否“大于”另一个实例! - Jeppe Stig Nielsen