c# - 如何按日期部分订购?

标签 c# linq .net-4.0 lambda

我有一个 DataColumnDateTime数据类型,我想按年份降序排列,然后按降序排列月份。

这是我尝试过的:

table.AsEnumerable()
    .OrderByDescending(o => o.Field<DateTime>("MaxDateTaken").Year)
    .ThenByDescending(o => o.Field<DateTime>("MaxDateTaken").Month)

我得到一个无效的转换错误,因为 YearMonth是 int 数据类型,但我指定了 DateTime<>

有什么想法吗?

最佳答案

你不应该因此得到转换错误 - 你确定那个字段真的是一个DateTime吗?

听起来你真的只是想要

table.AsEnumerable()
     .OrderByDescending(o => o.Field<DateTime>("MaxDateTaken"))

无论如何,考虑到按年和月降序排序基本上是按日期降序排序,除了它对“日”部分没有任何作用。您真的不想在您的订单中包含“天”部分吗?

关于c# - 如何按日期部分订购?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9152131/

相关文章:

c# - 如何在 ITypedList 上执行 Linq?

linq - 在 Entity Framework 的 LINQ 中使用 "NOT IN"从两个表中选择

c# - WPF 中的文件选择器对话框在哪里?

c# - 使用 C# 匿名类型

c# - 如何在 rdlc 或 ssrs 报告中设置表格的最小行数?

c# - 合并两个 linq 语句并删除重复项

c# - 为什么 Marshal.WriteInt64 方法的代码如此复杂?

c# - 如何解决 ValidationRule 类属性中的转换问题?

c# - 如何在 C# 中创建具有重载算术运算符的接口(interface)?

c# - 使用 Javascript 隐藏 Gridview