c# - orderByDescending 日期、月份和年份

标签 c# linq

我正在使用 LINQ 查询按日期降序获取数据顺序。但是当年份改变时,日期的降序排列不正确

这是我的代码

在此代码中,LastLogin 是具有 DateTime 数据类型的列。我必须按此列名对数据进行排序。

var res = objUI.Where(x => x.LastLogin != null)
               .GroupBy(x => x.LastLogin.Value.Date)
               .Select(x => new { LastLogin = string.Format("{0:MM/dd/yyyy}", x.Key) })
               .OrderByDescending(x => x.LastLogin)
               .ToList();

最佳答案

您不应该尝试将日期排序为字符串;

var res = objUI.Where(x => x.LastLogin != null)
    .GroupBy(x => x.LastLogin.Value.Date)
    .OrderByDescending(x => x.Key)
    .Select(x => new { LastLogin = string.Format("{0:MM/dd/yyyy}", x.Key) })
    .ToList();

关于c# - orderByDescending 日期、月份和年份,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48060827/

相关文章:

c# - 如何将带有状态变量的 C# Linq 查询重写为 T-SQL

c# - 如何通过自定义加入数据集来获取此 Linq 查询?

c# - 我如何将此linq代码转换为嵌入式SQL

c# - 在 where 子句中组合两个 LINQ 条件

c# - Excel 到 SQL、C# 库

c# - 如何使用 Microsoft 的 EWS API 从联系人获取/设置扩展属性?

c# - 错误读取配置 : Could not load type . .. 来自程序集 'System.Configuration

c# - 如何在我的应用程序中集成 Visual Studio

c# - LINQ 表达式 : Specifing maximum groupby size

c# - 获取我 `clicked`/`mousedown` 所在元素的名称