c# - DateTime 列表上的 OrderByDescending 不起作用?

标签 c# .net c#-4.0

在 lambda 表达式中,如何按 DateTime 值列表而不是对象进行排序?例如,我想通过以下查询获取最近的 3 个发薪日期:

 var hires = (from e in md.Employee
             where e.HireDate.Year == 2011
             select e.HireDate).Distinct();

 //at this point hires =
   6/3/2011
   5/15/2011
   6/1/2011
   7/1/2011

我的假设是我可以执行 .OrderByDescending(x => x).Take(3),但是当我这样做时我没有得到 7/1/2011(只是第一个3 以上)。这就像 OrderByDescending 被忽略了。

我做错了什么?

最佳答案

您确定 orderby 和 distinct 的顺序正确吗?

尝试:

var hires = (from e in md.Employee
    where e.HireDate.Year == 2011
    select e.HireDate).Distinct().OrderByDescending(e => e);

关于c# - DateTime 列表上的 OrderByDescending 不起作用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6810651/

相关文章:

.net - C#-简短检查null

.net - C# Unicode 字符串输出

c# - WebSocket4Net - 在 websocket 上收到 'return' 消息

c# - 使用 Entity Framework 一次更新多行

c# - 如何在 Emgu CV 中执行模板匹配

c# - 为什么 Array.Length 是一个 int,而不是一个 uint

wpf - 如何正确实现文本框验证

c# - 使用 Reflection.Emit 调用基类方法

c# - 无法将匿名类型从 'System.Linq.IQueryable' 转换为 'System.Data.Entity.Core.Objects.ObjectQuery'

c# - 为什么要在转换中使用 Convert.ToInt32?