我有一个DataColumn
DateTime
数据类型,我希望按年份按降序排列,然后按月降序排列。
这是我试过的:
table.AsEnumerable()
.OrderByDescending(o => o.Field<DateTime>("MaxDateTaken").Year)
.ThenByDescending(o => o.Field<DateTime>("MaxDateTaken").Month)
我收到了无效的强制转换错误,因为Year
和Month
都是int数据类型,但我在DateTime
<>
有什么想法吗?
答案 0 :(得分:3)
你不应该因此而犯错误 - 你确定该字段真的是DateTime
吗?
听起来你真的只想要
table.AsEnumerable()
.OrderByDescending(o => o.Field<DateTime>("MaxDateTaken"))
无论如何,鉴于按年份和月份下降的顺序基本上按日期降序排序,除了它对“日”部分没有任何作用。你真的不想在订购中加入“日”部分吗?
答案 1 :(得分:1)
你为什么忽略这一天?它可以变得更简单:
table = table.AsEnumerable()
.OrderByDescending(o => DateTime.Parse(o.Field<string>("MaxDateTaken")))
答案 2 :(得分:0)
我这样修好了:
table = table.AsEnumerable()
.OrderByDescending(o => DateTime.Parse(o.Field<string>("MaxDateTaken")).Year)
.OrderByDescending(o => DateTime.Parse(o.Field<string>("MaxDateTaken")).Month)