C# - 无法比较数组中的两个元素

use*_*053 2 c# linq

这是我的代码:

 var distinctDateValues = dt.AsEnumerable()
                   .Select(row => new
                   {
                       Date = DateTime.Parse(row.Field<string>("DAY"))
                   })
                   .Distinct()
                   .ToList();

 distinctDateValues.Sort(); // getting error on this line
Run Code Online (Sandbox Code Playgroud)

distinctDateValues 中的值是:

在此处输入图片说明

我得到的错误是“无法比较数组中的两个元素。”

任何人都可以建议我在这里做错了什么。我想对distinctDateValues 的日期列中的值进行排序。

cuo*_*gle 6

无需创建匿名类型,在您的情况下,结果distinctDateValues匿名类型的列表,而不是 的列表DateTime,您应该得到DateTime如下所示的排序列表OrderBy

var distinctDateValues = dt.AsEnumerable()
               .Select(row => row.Field<DateTime>("DAY"))
               .Distinct()
               .OrderBy(x => x)
               .ToList();
Run Code Online (Sandbox Code Playgroud)

此外,您应该使用内置方法Field<DateTime>而不是使用多一步DateTime.Parse